Просмотр исходного кода

Editor: Added Depth Test/Write in Material panel.

Mr.doob 5 лет назад
Родитель
Сommit
9bd44600c6
2 измененных файлов с 52 добавлено и 0 удалено
  1. 46 0
      editor/js/Sidebar.Material.js
  2. 6 0
      editor/js/Strings.js

+ 46 - 0
editor/js/Sidebar.Material.js

@@ -562,6 +562,26 @@ function SidebarMaterial( editor ) {
 
 	container.add( materialAlphaTestRow );
 
+	// depth test
+
+	var materialDepthTestRow = new UIRow();
+	var materialDepthTest = new UICheckbox().onChange( update );
+
+	materialDepthTestRow.add( new UIText( strings.getKey( 'sidebar/material/depthtest' ) ).setWidth( '90px' ) );
+	materialDepthTestRow.add( materialDepthTest );
+
+	container.add( materialDepthTestRow );
+
+	// depth write
+
+	var materialDepthWriteRow = new UIRow();
+	var materialDepthWrite = new UICheckbox().onChange( update );
+
+	materialDepthWriteRow.add( new UIText( strings.getKey( 'sidebar/material/depthwrite' ) ).setWidth( '90px' ) );
+	materialDepthWriteRow.add( materialDepthWrite );
+
+	container.add( materialDepthWriteRow );
+
 	// wireframe
 
 	var materialWireframeRow = new UIRow();
@@ -1136,6 +1156,18 @@ function SidebarMaterial( editor ) {
 
 			}
 
+			if ( material.depthTest !== undefined && material.depthTest !== materialDepthTest.getValue() ) {
+
+				editor.execute( new SetMaterialValueCommand( editor, currentObject, 'depthTest', materialDepthTest.getValue(), currentMaterialSlot ) );
+
+			}
+
+			if ( material.depthWrite !== undefined && material.depthWrite !== materialDepthWrite.getValue() ) {
+
+				editor.execute( new SetMaterialValueCommand( editor, currentObject, 'depthWrite', materialDepthWrite.getValue(), currentMaterialSlot ) );
+
+			}
+
 			if ( material.wireframe !== undefined && material.wireframe !== materialWireframe.getValue() ) {
 
 				editor.execute( new SetMaterialValueCommand( editor, currentObject, 'wireframe', materialWireframe.getValue(), currentMaterialSlot ) );
@@ -1217,6 +1249,8 @@ function SidebarMaterial( editor ) {
 			'opacity': materialOpacityRow,
 			'transparent': materialTransparentRow,
 			'alphaTest': materialAlphaTestRow,
+			'depthTest': materialDepthTestRow,
+			'depthWrite': materialDepthWriteRow,
 			'wireframe': materialWireframeRow
 		};
 
@@ -1592,6 +1626,18 @@ function SidebarMaterial( editor ) {
 
 		}
 
+		if ( material.depthTest !== undefined ) {
+
+			materialDepthTest.setValue( material.depthTest );
+
+		}
+
+		if ( material.depthWrite !== undefined ) {
+
+			materialDepthWrite.setValue( material.depthWrite );
+
+		}
+
 		if ( material.wireframe !== undefined ) {
 
 			materialWireframe.setValue( material.wireframe );

+ 6 - 0
editor/js/Strings.js

@@ -276,6 +276,8 @@ function Strings( config ) {
 			'sidebar/material/opacity': 'Opacity',
 			'sidebar/material/transparent': 'Transparent',
 			'sidebar/material/alphatest': 'Alpha Test',
+			'sidebar/material/depthtest': 'Depth Test',
+			'sidebar/material/depthwrite': 'Depth Write',
 			'sidebar/material/wireframe': 'Wireframe',
 
 			'sidebar/script': 'Script',
@@ -588,6 +590,8 @@ function Strings( config ) {
 			'sidebar/material/opacity': 'Opacité',
 			'sidebar/material/transparent': 'Transparence',
 			'sidebar/material/alphatest': 'Test de transparence',
+			'sidebar/material/depthtest': 'Depth Test',
+			'sidebar/material/depthwrite': 'Depth Write',
 			'sidebar/material/wireframe': 'Fil de fer',
 
 			'sidebar/script': 'Script',
@@ -874,6 +878,8 @@ function Strings( config ) {
 			'sidebar/material/opacity': '透明度',
 			'sidebar/material/transparent': '透明性',
 			'sidebar/material/alphatest': 'α测试',
+			'sidebar/material/depthtest': 'Depth Test',
+			'sidebar/material/depthwrite': 'Depth Write',
 			'sidebar/material/wireframe': '线框',
 
 			'sidebar/script': '脚本',