" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
THREE.ShaderChunk["lightmap_fragment"],// TODO: Light map on an otherwise unlit surface doesn't make sense.
THREE.ShaderChunk["envmap_fragment"],
THREE.ShaderChunk["envmap_fragment"],
THREE.ShaderChunk["shadowmap_fragment"],
THREE.ShaderChunk["shadowmap_fragment"],// TODO: Shadows on an otherwise unlit surface doesn't make sense.
THREE.ShaderChunk["linear_to_gamma_fragment"],
THREE.ShaderChunk["linear_to_gamma_fragment"],
THREE.ShaderChunk["fog_fragment"],
THREE.ShaderChunk["fog_fragment"],
" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
"}"
"}"
].join("\n")
].join("\n")
...
@@ -185,10 +191,12 @@ THREE.ShaderLib = {
...
@@ -185,10 +191,12 @@ THREE.ShaderLib = {
"void main() {",
"void main() {",
" gl_FragColor = vec4( vec3( 1.0 ), opacity );",
" vec3 outgoingLight = vec3( 0.0, 0.0, 0.0 );",// outgoing light does not have an alpha, the surface does
" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
"}"
"}"
].join("\n")
].join("\n")
...
@@ -318,11 +327,12 @@ THREE.ShaderLib = {
...
@@ -318,11 +327,12 @@ THREE.ShaderLib = {
"void main() {",
"void main() {",
" gl_FragColor = vec4( vec3( 1.0 ), opacity );",
" vec3 outgoingLight = vec3( 0.0, 0.0, 0.0 );",// outgoing light does not have an alpha, the surface does
" vec3 diffuseColor = diffuse;",
" vec4 diffuseColor = vec4( diffuse, opacity );",
THREE.ShaderChunk["logdepthbuf_fragment"],
THREE.ShaderChunk["logdepthbuf_fragment"],
THREE.ShaderChunk["map_fragment"],
THREE.ShaderChunk["map_fragment"],
THREE.ShaderChunk["color_fragment"],
THREE.ShaderChunk["alphamap_fragment"],
THREE.ShaderChunk["alphamap_fragment"],
THREE.ShaderChunk["alphatest_fragment"],
THREE.ShaderChunk["alphatest_fragment"],
THREE.ShaderChunk["specularmap_fragment"],
THREE.ShaderChunk["specularmap_fragment"],
...
@@ -330,7 +340,6 @@ THREE.ShaderLib = {
...
@@ -330,7 +340,6 @@ THREE.ShaderLib = {
THREE.ShaderChunk["lights_phong_fragment"],
THREE.ShaderChunk["lights_phong_fragment"],
THREE.ShaderChunk["lightmap_fragment"],
THREE.ShaderChunk["lightmap_fragment"],
THREE.ShaderChunk["color_fragment"],
THREE.ShaderChunk["envmap_fragment"],
THREE.ShaderChunk["envmap_fragment"],
THREE.ShaderChunk["shadowmap_fragment"],
THREE.ShaderChunk["shadowmap_fragment"],
...
@@ -338,6 +347,8 @@ THREE.ShaderLib = {
...
@@ -338,6 +347,8 @@ THREE.ShaderLib = {
THREE.ShaderChunk["fog_fragment"],
THREE.ShaderChunk["fog_fragment"],
" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
"}"
"}"
].join("\n")
].join("\n")
...
@@ -397,7 +408,8 @@ THREE.ShaderLib = {
...
@@ -397,7 +408,8 @@ THREE.ShaderLib = {
"void main() {",
"void main() {",
" gl_FragColor = vec4( psColor, opacity );",
" vec3 outgoingLight = vec3( 0.0, 0.0, 0.0 );",// outgoing light does not have an alpha, the surface does
" vec4 diffuseColor = vec4( psColor, opacity );",
THREE.ShaderChunk["logdepthbuf_fragment"],
THREE.ShaderChunk["logdepthbuf_fragment"],
THREE.ShaderChunk["map_particle_fragment"],
THREE.ShaderChunk["map_particle_fragment"],
...
@@ -406,6 +418,8 @@ THREE.ShaderLib = {
...
@@ -406,6 +418,8 @@ THREE.ShaderLib = {
THREE.ShaderChunk["shadowmap_fragment"],
THREE.ShaderChunk["shadowmap_fragment"],
THREE.ShaderChunk["fog_fragment"],
THREE.ShaderChunk["fog_fragment"],
" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects
"}"
"}"
].join("\n")
].join("\n")
...
@@ -474,12 +488,15 @@ THREE.ShaderLib = {
...
@@ -474,12 +488,15 @@ THREE.ShaderLib = {
" }",
" }",
" gl_FragColor = vec4( diffuse, opacity );",
" vec3 outgoingLight = vec3( 0.0, 0.0, 0.0 );",// outgoing light does not have an alpha, the surface does
" vec4 diffuseColor = vec4( diffuse, opacity );",
THREE.ShaderChunk["logdepthbuf_fragment"],
THREE.ShaderChunk["logdepthbuf_fragment"],
THREE.ShaderChunk["color_fragment"],
THREE.ShaderChunk["color_fragment"],
THREE.ShaderChunk["fog_fragment"],
THREE.ShaderChunk["fog_fragment"],
" gl_FragColor = vec4( outgoingLight, diffuseColor.a );",// TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects