diff --git a/examples/webgl_materials_channels.html b/examples/webgl_materials_channels.html index 475df2a5453252abb5fe6a2e1475380a58dca531..8407f2f526ea57cbace94569eb8e0208a212c615 100644 --- a/examples/webgl_materials_channels.html +++ b/examples/webgl_materials_channels.html @@ -59,7 +59,8 @@ var params = { material: 'normal', - camera: 'perspective' + camera: 'perspective', + side: 'double' }; var cameraOrtho, cameraPerspective; @@ -84,7 +85,7 @@ var gui = new dat.GUI(); gui.add( params, 'material', [ 'standard', 'normal', 'depthBasic', 'depthRGBA' ] ); gui.add( params, 'camera', [ 'perspective', 'ortho' ] ); - + gui.add( params, 'side', [ 'front', 'back', 'double' ] ); } function init() { @@ -188,7 +189,9 @@ side: THREE.DoubleSide } ); - materialNormal = new THREE.MeshNormalMaterial(); + materialNormal = new THREE.MeshNormalMaterial( { + side: THREE.DoubleSide + } ); // @@ -266,6 +269,14 @@ } + switch ( params.side ) { + + case 'front': material.side = THREE.FrontSide; break; + case 'back': material.side = THREE.BackSide; break; + case 'double': material.side = THREE.DoubleSide; break; + + } + mesh.material = material; } diff --git a/src/renderers/shaders/ShaderLib/normal_frag.glsl b/src/renderers/shaders/ShaderLib/normal_frag.glsl index e5519cdd890d2472d6b1a370348a4f1397b46789..69540c5289503104f3da83106536cd874ba1a78f 100644 --- a/src/renderers/shaders/ShaderLib/normal_frag.glsl +++ b/src/renderers/shaders/ShaderLib/normal_frag.glsl @@ -9,7 +9,9 @@ varying vec3 vNormal; void main() { #include - gl_FragColor = vec4( packNormalToRGB( vNormal ), opacity ); + #include + + gl_FragColor = vec4( packNormalToRGB( vNormal * flipNormal ), opacity ); #include