|
@@ -847,6 +847,28 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
|
|
|
this.compile = function ( scene, camera ) {
|
|
|
|
|
|
+ function prepare( material, scene, object ) {
|
|
|
+
|
|
|
+ if ( material.transparent === true && material.side === DoubleSide ) {
|
|
|
+
|
|
|
+ material.side = BackSide;
|
|
|
+ material.needsUpdate = true;
|
|
|
+ getProgram( material, scene, object );
|
|
|
+
|
|
|
+ material.side = FrontSide;
|
|
|
+ material.needsUpdate = true;
|
|
|
+ getProgram( material, scene, object );
|
|
|
+
|
|
|
+ material.side = DoubleSide;
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ getProgram( material, scene, object );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
currentRenderState = renderStates.get( scene );
|
|
|
currentRenderState.init();
|
|
|
|
|
@@ -882,13 +904,13 @@ function WebGLRenderer( parameters = {} ) {
|
|
|
|
|
|
const material2 = material[ i ];
|
|
|
|
|
|
- getProgram( material2, scene, object );
|
|
|
+ prepare( material2, scene, object );
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- getProgram( material, scene, object );
|
|
|
+ prepare( material, scene, object );
|
|
|
|
|
|
}
|
|
|
|