[x3d-public] geo / bubbles shader scene

doug sanden highaspirations at hotmail.com
Mon Jan 11 15:45:29 PST 2016


Thanks John for the screenshot. I'll look into that upside-down thing. Could be my matrix tinkering.

Standardized names - yes that's funny there are none. It makes shader programs browser-specific. Would be nice if they were standardized at least for GLSL and HLSL separately. X3Dom's looks 'not bad' for GLSL at first glance, but I'd have to try it out. 

-Doug
more..
I think glsl compilers will clean out/cull any unused uniform variables during compilation. 
If so, then the browser would automatically paste in all the standard variables as uniform variables at the top of the user's declared shader script, compile, then loop through to see which standard uniforms survived.
For the ones that stuck, the browser would set them on each frame automatically. And update any changed user-declared fields.
Browsers are already doing this I think. So its just a matter of making sure we've all got the same set of standard variables, and they're all named the same - at least for GLSL and HLSL separately.



________________________________________
From: John Carlson <yottzumm at gmail.com>
Sent: January 11, 2016 2:46 PM
To: doug sanden
Cc: X3D Graphics public mailing list
Subject: Re: [x3d-public]  geo / bubbles shader scene

Doug, it’s supposed to look like the this image:
http://coderextreme.net/reflectrefract.png

But your below modifications means that we should standardize our names for various matrices etc.  (fw_…) between X3D players so that our shader code is portable.  Does anyone want to take this up?  Also it would be good if we could coordinate with PlayCanvas.com on this as well.  I don’t want to modify my shaders for every single app I write and every browser I use.  Is there a good solution?

John
> On Jan 11, 2016, at 4:12 PM, doug sanden <highaspirations at hotmail.com> wrote:
>
> Q. is this what the geo.x3d/ bubbles ProgrammableShader sample is supposed to look like?
> http://dug9.users.sourceforge.net/web3d/tests/Bubbles_shaders/geo/geoPshaderInline10.png
> -Doug
> more..
> freewrl wasn't showing the sphere, so I hacked the shaders until I got something, then tinkered to get it close to the original scene.
> 1. I changed from ComposedShader to ProgramShader (not sure that was necessary)
> 2. dropped the cube SFInt32 field
> 3. substituted fw_ names for things like modelviewmatrix ie fw_ModelViewMatrix
> 4. explicitly multiplied projection * modelview rather than assuming it's already in context ie fw_ProjectionMatrix * fw_ModelViewMatrix
> 5. avoided mat3 and used the original mat4
> 6. replaced 'uniform samplerCube cube;' with 'uniform samplerCube fw_Texture_unit0;'
>   and textureCube(cube,... with textureCube(fw_Texture_unit0,...
> Resulting freewrl-compatible scene:
> http://dug9.users.sourceforge.net/web3d/tests/Bubbles_shaders/geo/geoPShaderInline10.x3d
>
> more..
> I don't know if there's something in the specs saying what the common matrices and texture units are supposed to be called.
> If so freewrlians didn't get the memo. Hence the fw_ names.
> Q. where is that -names for modelviewmatrix etc- in any specs?
>
> ________________________________________
> From: x3d-public <x3d-public-bounces at web3d.org> on behalf of doug sanden <highaspirations at hotmail.com>
> Sent: January 10, 2016 8:54 AM
> To: John Carlson; X3D Graphics public mailing list
> Subject: Re: [x3d-public] fill in what shading languages are available
>
>>
>>
>>
>> Could someone fill in what shading languages are available for those
>> X3D players which support programmable shaders on this
>>
>>
>>
>>
>>
>> page: http://www.web3d.org/wiki/index.php/Player_support_for_X3D_components
>>
>
> _                      FreeWRL
> Programmable
> _ Shaders      partial^
> GLSL                yes
> HLSL                no
> Cg                    no
>
> ^ and a subset of Level 1
> http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/shaders.html#SupportLevels
> ComposedShader    yes
> ProgramShader        yes
> PackagedShader       no
>
> more..
> http://freewrl.sourceforge.net/FreeX3D/Component_ProgrammableShaders.html
> On behalf of the freewrl opensource community, I report my best knowledge today FreeWRL supports GLSL shading language only, Composed and Program shaders only.
> Or more correctly aspires to. Your Geo.x3d example
> http://coderextreme.net/bug/geo.x3d
> of cubemap shading in a ComposedShader isn't working right now in freewrl, and I'm looking into that.
> Other samples of ProgramShaders and ComposedShaders do work in freewrl:
> http://dug9.users.sourceforge.net/web3d/tests/ProgrammableShaders/flutter2-ProgramShader.x3d
> http://dug9.users.sourceforge.net/web3d/tests/ProgrammableShaders/flutter2-ComposedShader.x3d
>
> Thanks,
> -Doug
>
>
>>
>> Player support for X3D components - Web3D.org
>> www.web3d.org
>> The Extensible 3D (X3D) Graphics standard has many capabilities. X3D
>> components are modular collections of nodes that make it easier for
>> software to gradually ...
>>
>>
>>
>> Thanks,
>>
>>
>> John
>>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org



More information about the x3d-public mailing list