#jogamp @ irc.freenode.net - 20140321 05:06:10 (UTC)
20140321 05:06:10 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20140320050610.html
20140321 05:06:10 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20140321050610.html
20140321 06:23:39 * [Mike] (~Mike]@anon) has joined #jogamp
20140321 06:59:41 * monsieur_max (~maxime@anon) has joined #jogamp
20140321 07:08:28 * zzuegg|afk is now known as zzuegg
20140321 07:25:20 * jvanek (jvanek@anon) has joined #jogamp
20140321 08:12:55 * puchka (~puchka@anon) has joined #jogamp
20140321 08:13:02 <puchka> Hi all!
20140321 08:13:58 <puchka> I wish to know what it the licence of https://github.com/demoscenepassivist/SocialCoding
20140321 08:18:18 <puchka> I want to use it in a project that I'll put in github
20140321 09:20:49 * magaio (~magaio@anon) Quit (Ping timeout: 240 seconds)
20140321 09:28:02 * magaio (~magaio@anon) has joined #jogamp
20140321 10:01:41 <bbbruce> sgothel: did you see my question regarding authorized_keys?
20140321 10:15:41 * hija (~hija@anon) Quit (Quit: hija)
20140321 10:41:54 * hija (~hija@anon) has joined #jogamp
20140321 10:58:11 <sgothel> @Mark: Nice water - great stuff
20140321 10:58:24 <sgothel> (your refract mp4 ..)
20140321 10:59:02 <sgothel> @bbruce: .. err .. send me an email, I will send you my ssh public key .. thats what it is .. a file w/ all public keys allowing to login
20140321 10:59:55 <sgothel> @puchka: license not mentioned in Dominik's code ? Please send him a message ..
20140321 11:23:12 <puchka> I already published my code :|
20140321 11:25:50 <puchka> I can't find contact anywhere in github
20140321 12:27:58 * hija (~hija@anon) Quit (Quit: hija)
20140321 12:30:18 * gouessej (5ee4b442@anon) has joined #jogamp
20140321 12:30:33 <gouessej> Hi
20140321 12:31:14 <gouessej> puchka, you can contact Dominil on Tumblr, can't you? http://jogamp.org/wiki/index.php/Maintainer_and_Contacts#Dominik_Str.C3.B6hlein
20140321 12:31:32 <gouessej> Mark, I've just discovered JParasol
20140321 12:31:48 <rmk0> 'lo
20140321 12:32:03 <gouessej> It is interesting but personally, I would like to write shaders in Java
20140321 12:32:50 <rmk0> i could see a domain specific language embedded in java that produces GLSL
20140321 12:33:21 <gouessej> It's already good anyway.
20140321 12:33:37 <gouessej> If I understand things correctly, I just have to write one shader
20140321 12:33:44 <gouessej> with your language
20140321 12:33:56 <gouessej> it handles the differences
20140321 12:34:00 <rmk0> yep
20140321 12:34:10 <gouessej> this is excellent :)
20140321 12:34:21 <rmk0> there are some it can't handle, obviously... if you do something that really can't be represented in glsl es 1.0, for example, it'll shout at you
20140321 12:34:35 <rmk0> it'll produce glsl for every version you specify, and error if it can't
20140321 12:35:31 <gouessej> Do you think it is possible to write some builder classes in Java to generate code in your specific languages?
20140321 12:36:03 <rmk0> hm
20140321 12:36:38 <rmk0> probably not, at least they way things are structured now
20140321 12:36:55 <gouessej> why?
20140321 12:37:29 <rmk0> the compiler's structured as a series of transformations from ASTs to ASTs
20140321 12:37:36 <rmk0> each stage trusts the previous stage
20140321 12:38:02 <rmk0> think it'd be hard to provide an API that respected all the invariants that was also usable by humans
20140321 12:38:56 <gouessej> I see what you mean (a bit)
20140321 12:40:01 <rmk0> it might be doable
20140321 12:40:07 <rmk0> trying to think how...
20140321 12:40:18 <gouessej> your language has a proper grammary
20140321 12:40:41 <gouessej> maybe it's possible to use ANTLR to convert a subset of Java into your language
20140321 12:40:43 <rmk0> it has full typing rules, operational semantics, etc
20140321 12:40:48 <rmk0> http://fossil.io7m.com/repo.cgi/io7m-jparasol/dir?ci=f6a7197293e31c4c&name=io7m-jparasol-compiler-core/src/main/java/com/io7m/jparasol/typed/ast
20140321 12:40:58 <rmk0> that's the final typed representation that's passed to the GLSL backend
20140321 12:41:14 <rmk0> fairly unsurprising stuff
20140321 12:41:28 <gouessej> I was looking for an example using jaux, good :)
20140321 12:41:39 <rmk0> hehe
20140321 12:42:03 <rmk0> you... may find that you don't actually like the language
20140321 12:42:08 <rmk0> it's extremely minimal
20140321 12:42:24 <rmk0> no mutable state, no loops, no arrays
20140321 12:42:57 <rmk0> i've implemented functionality roughly equivalent to valve's source engine (prior to the HD stuff) in it, so it's definitely capable
20140321 12:43:06 <gouessej> Would it help to write shaders for games just once for all?
20140321 12:43:19 <rmk0> that's the main use case
20140321 12:43:27 <rmk0> am developing an engine that has to run *everywhere*
20140321 12:43:54 <gouessej> How many engines are we developing in the JogAmp community?
20140321 12:43:55 <gouessej> :s
20140321 12:43:59 <rmk0> hehe
20140321 12:44:14 <rmk0> i may license the engine commercially (but it'll still be open source)
20140321 12:44:15 <gouessej> Renanse left the project, Ardor3D will die :(
20140321 12:45:40 <gouessej> under ISC license?
20140321 12:45:43 <rmk0> yeah
20140321 12:46:07 <rmk0> a commercial license would imply personal paid support
20140321 12:46:21 <rmk0> general preferential treatment, etc
20140321 12:46:29 <sgothel> the usual .. hi :)
20140321 12:46:33 <rmk0> lo!
20140321 12:46:58 <sgothel> when you have something up to peek and steal - just publish it :)
20140321 12:47:19 <rmk0> i've not made the repository public yet, but it's definitely on the way
20140321 12:47:29 <sgothel> anybody here tried FXAA ?
20140321 12:47:30 <rmk0> i just finished that refraction effect, as you saw, and that was the last major piece
20140321 12:47:36 <sgothel> what kinda engine ?
20140321 12:47:42 <gouessej> ok
20140321 12:47:44 <sgothel> yes .. sweet looking
20140321 12:48:07 <sgothel> mesh based I assume ? physics ?
20140321 12:48:30 <rmk0> it's strictly a renderer... it takes a set of triangle meshes, materials, and lights, and produces an image
20140321 12:48:41 <rmk0> no input handling, no physics, no audio
20140321 12:49:05 <sgothel> DAG or .. chaotic + octree stuff ?
20140321 12:49:26 <rmk0> the input to the renderer isn't even that... is a set of batched mesh instances
20140321 12:49:28 <sgothel> (chaotic - spatial ordered .. or however you name it)
20140321 12:49:44 <rmk0> am going to develop a separate frontend that does spatial partitioning and passes the results to this renderer kernel
20140321 12:49:52 <sgothel> ah
20140321 12:49:53 <rmk0> separation of concerns and so on
20140321 12:50:16 <sgothel> loong pipe (dreams - not) :)
20140321 12:50:38 <rmk0> the kernel supports generic refraction, spherical/directional/projective lighting, variance shadow maps, basic shadow maps (for ES2), normal mapping, environment mapping, etc
20140321 12:50:41 <rmk0> usual stuff
20140321 12:50:51 <rmk0> postprocessing
20140321 12:51:07 <sgothel> nice nice
20140321 12:51:14 <zzuegg> sgothel, jme is using fxaa.. afaik doesn't work on mac however
20140321 12:51:43 <sgothel> ah .. I just found an 3.9 version .. hmm .. trying for our VBAA in graph
20140321 12:52:09 <sgothel> thx .. will look there as well
20140321 12:52:20 <gouessej> zzuegg, do you think JMonkeyEngine users could be interested by JParasol to write shaders?
20140321 12:52:53 <rmk0> i suspect they'd dislike it
20140321 12:53:08 <rmk0> minimalist languages tend not to stay minimalist when a large userbase gets hold of them
20140321 12:53:09 <zzuegg> never heard of JParasol.. any link available?
20140321 12:53:12 <sgothel> JParasol = subset, no loops AFAI understood ..
20140321 12:53:20 <sgothel> ?
20140321 12:53:28 <rmk0> yeah, is both pure functional and total
20140321 12:53:31 <gouessej> http://mvn.io7m.com/jparasol/
20140321 12:53:34 <sgothel> (not that loops are desired :)
20140321 12:54:06 <rmk0> i don't want loops either, but someone coming from glsl may be disappointed
20140321 12:54:07 <sgothel> well, for the little jogl shaders, I prefer plain vanilla glsl code
20140321 12:54:30 <zzuegg> oh, i get it. hm don't know. they are trying to push node based shader design as 'common' editor
20140321 12:54:38 <rmk0> the main reason jparasol exists is because this renderer kernel requires thousands of shaders
20140321 12:54:44 <sgothel> but if tackling all sorts of shader engines .. well .. (HLSL, GLSL, Renderman .. whatever) .. cool
20140321 12:54:50 <rmk0> i needed to do type-checking before runtime in order to stay sane
20140321 12:55:18 <sgothel> yeah .. on-the-fly creation .. and mingling ..
20140321 12:55:35 <rmk0> well these are actually all generated at compile time, but yeah, could be done at runtime too
20140321 12:55:49 <rmk0> essentially one shader per combination of material properties
20140321 12:55:58 * puchka (~puchka@anon) Quit (Ping timeout: 246 seconds)
20140321 12:56:00 <zzuegg> sgothel: here is the fxaa shader in case you need it: https://code.google.com/p/jmonkeyengine/source/browse/trunk/engine/src/core-data/Common/MatDefs/Post/FXAA.frag?r=8849
20140321 12:56:10 <rmk0> currently comes to 2008 possible combinations (shaders)
20140321 12:56:15 <sgothel> thx zzuegg
20140321 12:56:35 <sgothel> ola .. 6 years behind :)
20140321 12:58:00 <sgothel> thx zzueg .. looks like the one Dominik has in his code ..
20140321 12:58:28 <sgothel> csm2.download.game.zing.vn/drif/data/shader/fxaa3_9.h <- another one ..
20140321 12:59:23 * puchka (~puchka@anon) has joined #jogamp
20140321 12:59:24 <rmk0> http://waste.io7m.com/2014/03/21/Fwd_LPSMV_TC_BC_MM_NM_EL_SC.p.txt
20140321 12:59:36 <rmk0> ^^ one of the most complicated material shaders in the renderer
20140321 12:59:53 <rmk0> http://waste.io7m.com/2014/03/21/glsl-330.f.txt <- the generated GLSL 330 code
20140321 13:00:41 <gouessej> the names of your variables are explicit :)
20140321 13:00:42 <sgothel> @Mark: You use UBOs ?
20140321 13:00:55 <rmk0> sgothel: nope
20140321 13:00:59 <rmk0> gouessej: yesh!
20140321 13:01:54 * gouessej (5ee4b442@anon) has left #jogamp
20140321 13:02:12 <rmk0> sgothel: i'd... sort of like to, but the interface seems extremely error prone and won't work on ES2/GL2 anyway
20140321 13:02:38 <rmk0> it's something for the future, but the way uniforms are handled by the renderer seems reasonably efficient at the moment anyway
20140321 13:02:47 <sgothel> your lang looks very nice & clean: KUDOS
20140321 13:03:06 <rmk0> because it's not a 1:1 correspondance between objects and shaders, a lot of uniforms can be set once rather than once-per-object
20140321 13:03:43 <rmk0> tends to cut down on a lot of gpu traffic
20140321 13:04:49 <sgothel> err .. uniform 1:1 program, wasn't it ?
20140321 13:05:01 <rmk0> it is, yeah
20140321 13:05:23 <rmk0> what i mean is... the way this renderer is designed, you'd tend to only have a few shaders in a scene at once, rather than the hundreds that other engines have
20140321 13:05:35 <rmk0> there's more sharing, and less need to re-assign uniforms over and over
20140321 13:05:38 <sgothel> so you set field by field .. did same in the limited ffp emul
20140321 13:05:44 <rmk0> yep
20140321 13:06:13 <sgothel> so .. branch a lot vs switching programs ?
20140321 13:06:32 <rmk0> no branching, due to batching
20140321 13:06:43 <rmk0> er, unless i misunderstood
20140321 13:06:48 <sgothel> ah .. one 'concatenated .. '
20140321 13:07:22 <rmk0> the renderer generates "labels" from material definitions... given an arbitrary label, the renderer knows what uniforms need to be set for that label
20140321 13:07:41 <sgothel> so you make a big shader per batch .. fitting the desired task .. matching number of lights material .. etc
20140321 13:07:48 <rmk0> nope
20140321 13:07:56 <rmk0> hehe
20140321 13:08:18 <rmk0> is strictly one light and one material per shader, with light contributions summed with additive blending
20140321 13:08:53 <sgothel> ain't that slow ?
20140321 13:09:14 <sgothel> n lights -> n shader / FBO blend loops
20140321 13:09:18 <rmk0> deferred rendering cuts out a lot of the work
20140321 13:10:10 <sgothel> surely will love reading your engine
20140321 13:10:20 <rmk0> is actually the way the doom 3 engine did things... the forward renderer anyway
20140321 13:11:39 <sgothel> w/ the ffp emul .. (used in jake2) I tried to switch to a shader w/ given number of lights etc .. ah well, not really my expertise yet :) .. but will be there
20140321 13:11:51 <rmk0> for the forward renderer, the trick is obviously to batch things such that only the four or five lights that contribute most to a given surface are actually used
20140321 13:12:05 <rmk0> but the renderer doesn't know anything about that, it just renders exactly what you tell it and nothing more
20140321 13:12:18 <rmk0> it doesn't know enough about your scene to intelligently make that decision anyway
20140321 13:12:36 <sgothel> so 5x: scene rendering w/ given light and blend the FBO
20140321 13:12:49 <rmk0> pretty much
20140321 13:12:51 <sgothel> that sounds good -> simple
20140321 13:12:58 <rmk0> yeah, is extremely simple
20140321 13:13:10 <sgothel> best solutions are simple :)
20140321 13:13:21 <sgothel> but getting there is hard :)
20140321 13:13:31 <rmk0> it's been about eight months in total
20140321 13:13:40 <sgothel> sweet
20140321 13:13:44 <rmk0> not counting the time to write the math libraries like jtensors, jspatial, jparasol, etc
20140321 13:13:52 <rmk0> jcanephora
20140321 13:13:53 <sgothel> yeah, I know .. right - and all your tests
20140321 13:14:03 <rmk0> hehe, yeah... testing takes longest of all!
20140321 13:14:13 <rmk0> "you've just written 1000 lines, have fun writing 3000 to test them all"
20140321 13:14:16 <sgothel> knowing that I found my master regarding being anal and correct :)
20140321 13:14:35 <rmk0> i'm... quite into correctness!
20140321 13:14:40 <sgothel> hehe
20140321 13:15:14 <sgothel> had to do similar w/ last UI demo .. the math tests etc .. it's faster to work when you know the math does what it should :)
20140321 13:15:23 <rmk0> yeah, that can be brutal
20140321 13:15:28 <rmk0> mathematicians are poor writers
20140321 13:15:37 <rmk0> usually end up having to find another known good implementation to compare results
20140321 13:15:52 <sgothel> me too - comparing etc etc
20140321 13:16:03 <sgothel> plus learning it :)
20140321 13:16:05 <zzuegg> have you a way to test the output of opengl? Or are you talking about testing the cpu logic?
20140321 13:16:16 <rmk0> zzuegg: math stuff mostly
20140321 13:16:21 <sgothel> yup
20140321 13:16:36 <sgothel> gl result .. oh dear .. I only know the 'golden image' thingy
20140321 13:16:49 <rmk0> i've no good way to test opengl code
20140321 13:16:52 <sgothel> i.e. having golden snapshots -> compare
20140321 13:16:52 <zzuegg> ah. ok.. already tought you have some magic method :)
20140321 13:17:25 <sgothel> but me working to get that golden image .. still :)
20140321 13:18:16 <zzuegg> yeah, unfortunately once you have your golden snapshot you probably have done all right already :)
20140321 13:18:41 <zzuegg> but to check future modification it might work
20140321 13:18:52 <rmk0> tend to try to stick to the bits of the opengl api where errors can actually be checked
20140321 13:19:09 <rmk0> like... when i compile a program, i grab a list of the names and types of all the uniforms and check them at runtime
20140321 13:19:16 <rmk0> a glsl program, that is
20140321 13:19:19 <sgothel> since we do screenshots in unit tests .. we could do that one day ..
20140321 13:19:52 <rmk0> i also have a list of the _declared_ uniforms in the program, so i can distinguish between a typo in the name, and a uniform that's been optimized out
20140321 13:20:01 <rmk0> that stuff saves a hell of a lot of misery
20140321 13:21:42 <rmk0> er, it's not possible to tell the difference between a uniform who's name you've mis-typed, or one that's been optimized out by the glsl compiler
20140321 13:21:45 <rmk0> is what i meant
20140321 13:22:02 <rmk0> unless you can inspect the source code of the program and get a list of names of types of the declared uniforms
20140321 13:22:09 <rmk0> *names and types
20140321 13:22:12 * rmk0 mashes keyboard
20140321 13:22:17 <sgothel> :)
20140321 13:22:35 <rmk0> trying to assign a value to the former is an error, the latter isn't
20140321 13:22:43 <rmk0> but you won't get a good error from opengl in either case
20140321 13:23:02 <rmk0> silent failure \o/
20140321 13:23:04 <zzuegg> well, it still takes a decade till get to a point where
20140321 13:23:05 <sgothel> right .. it's designed to be downstream
20140321 13:28:57 <rmk0> it'd be nice if there were functions to return the full list of declared uniforms and attributes
20140321 13:29:07 <rmk0> whether or not they actually appear in the compiled/optimized program
20140321 13:29:15 <rmk0> the driver obviously has that information, as it parsed your glsl
20140321 13:29:20 <sgothel> MRT -> readPixels :)
20140321 13:34:09 <zzuegg> just out of couriosity, would it be possible to use unsafe.copyMemory() to skip the whole directbuffer stuff?
20140321 14:14:07 * hija (~hija@anon) has joined #jogamp
20140321 15:10:54 * puchka (~puchka@anon) Quit (Ping timeout: 245 seconds)
20140321 15:20:49 * jvanek (jvanek@anon) Quit (Quit: Leaving)
20140321 16:22:49 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20140321 17:45:51 * phao (~phao@anon) has joined #jogamp
20140321 17:52:43 * monsieur_max (~maxime@anon) has joined #jogamp
20140321 18:02:55 * hija (~hija@anon) Quit (Quit: hija)
20140321 18:19:52 * phao (~phao@anon) Quit (Quit: Fui embora)
20140321 18:22:48 * phao (~phao@anon) has joined #jogamp
20140321 18:45:49 <rmk0> hrm... so what's the recommended way to imitate glBlitFramebuffer on ES2?
20140321 18:46:18 <rmk0> obviously i don't have a READ_FRAMEBUFFER, but i would like to copy a region of a framebuffer (including the depth buffer) to another...
20140321 19:47:17 * zzuegg is now known as zzuegg|afk
20140321 20:03:39 <rmk0> suppose a screen-space quad that reads from a colour and depth texture and assigns to the current colour and gl_FragDepth
20140321 20:03:57 * hija (~hija@anon) has joined #jogamp
20140321 20:05:19 * hija (~hija@anon) Quit (Client Quit)
20140321 20:34:58 * phao (~phao@anon) Quit (Quit: Fui embora)
20140321 20:48:00 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20140321 20:48:19 * monsieur_max (~maxime@anon) has joined #jogamp
20140321 20:57:13 * hija (~hija@anon) has joined #jogamp
20140321 21:02:58 * magaio (~magaio@anon) Quit (Ping timeout: 240 seconds)
20140321 21:04:00 * magaio (~magaio@anon) has joined #jogamp
20140321 21:11:41 * hija (~hija@anon) Quit (Read error: Connection reset by peer)
20140321 21:13:02 * hija (~hija@anon) has joined #jogamp
20140321 21:49:15 * void256 (~void@anon) has joined #jogamp
20140321 22:44:34 * monsieur_max (~maxime@anon) has left #jogamp
20140321 23:04:34 * [Mike] (~Mike]@anon) Quit ()
20140321 23:42:09 * void256 (~void@anon) Quit (Remote host closed the connection)
20140322 01:24:33 * hija (~hija@anon) Quit (Quit: hija)
20140322 01:39:36 * [Mike] (~Mike]@anon) has joined #jogamp
20140322 02:45:29 * [Mike] (~Mike]@anon) Quit (Read error: Connection reset by peer)
20140322 02:48:43 * [Mike] (~Mike]@anon) has joined #jogamp
20140322 05:05:11 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20140322050511.html