#jogamp @ irc.freenode.net - 20160206 05:05:26 (UTC)


20160206 05:05:26 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20160205050526.html
20160206 05:05:26 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20160206050526.html
20160206 06:19:59 * elect (~elect@anon) has joined #jogamp
20160206 08:05:35 * elect (~elect@anon) Quit (Ping timeout: 240 seconds)
20160206 08:51:53 * monsieur_max (~maxime@anon) has joined #jogamp
20160206 09:16:30 * jvanek (jvanek@anon) Quit (Quit: Leaving)
20160206 09:30:38 * elect (~elect@anon) has joined #jogamp
20160206 10:57:27 * Eclesia (~eclesia@anon) has joined #jogamp
20160206 10:57:34 <Eclesia> hi
20160206 11:21:06 * elect (~elect@anon) Quit (Ping timeout: 240 seconds)
20160206 11:30:09 * spaceemotion (~spaceemot@anon) has joined #jogamp
20160206 12:57:44 * elect (~elect@anon) has joined #jogamp
20160206 13:07:29 * elect (~elect@anon) Quit (Ping timeout: 276 seconds)
20160206 14:36:22 * Eclesia (~eclesia@anon) Quit (Quit: Leaving.)
20160206 15:02:49 * elect (~elect@anon) has joined #jogamp
20160206 16:35:44 * Eclesia (~eclesia@anon) has joined #jogamp
20160206 16:36:12 <Eclesia> o/
20160206 17:29:29 * Eclesia (~eclesia@anon) Quit (Quit: Leaving.)
20160206 18:20:16 * elect (~elect@anon) Quit (Ping timeout: 252 seconds)
20160206 19:01:19 * elect (~elect@anon) has joined #jogamp
20160206 19:07:38 * Eclesia (~eclesia@anon) has joined #jogamp
20160206 19:09:08 * Eclesia alone again
20160206 19:09:49 <rmk0> .o.
20160206 19:11:07 <Eclesia> \o/
20160206 19:14:18 <rmk0> http://waste.io7m.com/2016/02/06/ssao_correct.mp4
20160206 19:14:43 <rmk0> please excuse the fucked up framerate... it's using cutting edge recorditnow technology, so it can't really capture video consistently
20160206 19:15:08 <rmk0> it seems to run pretty well on this elderly intel sandy bridge gpu
20160206 19:15:25 <rmk0> is the un-filtered ssao term
20160206 19:17:22 <Eclesia> looks fine, did you start from the shader I had ?
20160206 19:17:38 <rmk0> nope, went by john chapman's example
20160206 19:17:42 <rmk0> http://john-chapman-graphics.blogspot.co.uk/2013/01/ssao-tutorial.html
20160206 19:17:51 <rmk0> had to adapt it a fair bit to match my gbuffer format and so on
20160206 19:18:15 <rmk0> it still needs work
20160206 19:18:38 <Eclesia> http://unlicense.developpez.com/gallery/3D_ssao_l.gif
20160206 19:18:55 <rmk0> nice
20160206 19:19:25 <Eclesia> mine is still bugged :D some places are darkened when they should not
20160206 19:19:40 <rmk0> think the algorithm is just like that
20160206 19:19:44 <rmk0> is never going to be very accurate
20160206 19:19:47 <Eclesia> look at the armpit
20160206 19:19:53 <rmk0> yep
20160206 19:22:51 <Eclesia> Talking about gbuffer I would like your opinion.
20160206 19:23:10 <Eclesia> So far I believed (naively) that it would be possible to somehow always auto-create glsl shader from model objects (material, shape, layers, effects ...)
20160206 19:23:31 <Eclesia> But the more I code the more I see shader possibilities and variations are infinite.
20160206 19:24:17 <Eclesia> so question is : should an engine try to do a lot of them ? or provide a simple way to insert your own custom shader ?
20160206 19:24:56 <Eclesia> and only provide 'standard' rendering
20160206 19:25:37 <Eclesia> standard = texture mapping colors, colors, bump map, ...
20160206 19:26:07 <Eclesia> not-standard = distance fields, fractals, texture mixing, ...
20160206 19:26:33 <Eclesia> hard question :D
20160206 19:26:34 * rmk0 displays hourglass
20160206 19:27:36 <rmk0> the previous renderer i wrote had a fixed material system. it exposed a set of material types that i'd defined after going through a lot of the games that were available at the time and making sure i could reproduce all of their surfaces
20160206 19:27:49 <rmk0> the renderer itself would pick the appropriate shader at run-time, and the user would never know which it picked
20160206 19:28:08 <rmk0> problem with that is as you said... the possibilities are infinite, and if you needed something the material system couldn't do... game over
20160206 19:28:17 <Eclesia> looks a lot like what I'm doing right now
20160206 19:29:21 <rmk0> this time around i've exposed shaders. i provide a few default shaders that can, for example, reproduce all of the surfaces in deus ex human revolution (♥) and have written all of the shader code in reusable library form
20160206 19:29:26 <rmk0> at least as reusable as GLSL can be, anyway
20160206 19:30:13 <rmk0> the gbuffer is treated as the input to the renderer
20160206 19:30:40 <rmk0> people can write custom surface shaders if they really want, but hopefully the defaults are flexible enough anyway
20160206 19:30:44 * elect (~elect@anon) Quit (Ping timeout: 248 seconds)
20160206 19:31:51 <rmk0> https://github.com/io7m/r2/blob/develop/io7m-r2-shaders/src/main/glsl/com/io7m/r2/shaders/sources/R2SurfaceBasicReflective.h
20160206 19:32:02 <rmk0> is an example of what's required to write a surface shader
20160206 19:32:11 <rmk0> is a function that, when evaluated, yields input to a g-buffer
20160206 19:32:25 <rmk0> the code that calls it compresses the normals, encodes the depth value as logarithmic, etc
20160206 19:32:38 <rmk0> user is insulated from having to do all that crap manually
20160206 19:34:02 <Eclesia> solution 2 then ... I guess it's inevitable
20160206 19:34:47 <rmk0> think it's critical to keep as much outside of the core as possible
20160206 19:35:06 <rmk0> this stuff can spiral out of control in terms of complexity very quickly
20160206 19:36:10 <Eclesia> I see that now, distance field mapping opened my eyes :D
20160206 19:39:23 <Eclesia> rmk0: from what I see you allow to customize the last part of the shader program (fragments) , you have something similar for vertex/tesslation/geometry ? billboard,particules,animations also require possibilities of customization
20160206 19:41:00 <rmk0> i'm limited to opengl 3.3, so i can only expose geometry shaders. i am intending to implement billboarding
20160206 19:41:30 <rmk0> right now i provide a default "single instance" and "batched instance" vertex shader, so people can attach their surface shader to either and get batched or single instances
20160206 19:43:09 <rmk0> i don't touch animation at all
20160206 19:43:23 <rmk0> as far as i'm concerned, the renderer is rendering a single frame of static objects with static materials
20160206 19:43:35 <rmk0> if those objects and materials have changed by the next frame... then it's "animated"!
20160206 19:44:15 <rmk0> is up to the user to animate things themselves, the renderer remains ignorant of it
20160206 19:46:00 <Eclesia> *sigh* looks like I'll have to rewrite a part of my engine :/
20160206 19:46:24 <rmk0> /o\
20160206 19:46:56 <rmk0> i'm on the first complete rewrite myself, if you remember
20160206 19:47:13 <rmk0> i was on other projects for a good eight months. came back and discovered that suddenly everyone has working 3.3 drivers
20160206 19:47:20 <rmk0> no need to support all that ancient 2.1, ES 2.0 shit
20160206 19:47:31 <rmk0> can suddenly use features like instancing that i didn't have access to before
20160206 19:48:03 <rmk0> *drastically* simpler and smaller codebase now
20160206 19:49:43 <Eclesia> don't worry. I already have a 'Renderer' attached to my scene nodes. so it's more like a big update of the RenderingPhase. all other phases/effects or scene objets should not have to change
20160206 20:14:07 * philjord (599cc172@anon) has joined #jogamp
20160206 20:41:48 * Eclesia (~eclesia@anon) has left #jogamp
20160206 21:13:30 * guillaum1 (~gl@anon) Quit (Ping timeout: 272 seconds)
20160206 21:28:31 * guillaum1 (~gl@anon) has joined #jogamp
20160206 22:04:43 * philjord (599cc172@anon) Quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
20160206 22:38:39 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20160206 23:11:54 * elect (~elect@anon) has joined #jogamp
20160206 23:23:41 * elect (~elect@anon) Quit (Ping timeout: 276 seconds)
20160206 23:35:31 <spaceemotion> heyo rmk0 glad to see you're still here ;)
20160207 00:26:25 * bigpet_ (uid25664@anon) has joined #jogamp
20160207 00:28:50 * bigpet (uid25664@anon) Quit (Ping timeout: 240 seconds)
20160207 00:28:58 * bigpet_ is now known as bigpet
20160207 01:31:46 * Eclesia (~eclesia@anon) has joined #jogamp
20160207 01:32:05 * Eclesia (~eclesia@anon) Quit (Client Quit)
20160207 04:29:50 * spaceemo_ (~spaceemot@anon) has joined #jogamp
20160207 04:32:35 * spaceemotion (~spaceemot@anon) Quit (Ping timeout: 245 seconds)
20160207 05:05:27 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20160207050527.html