From ef85b56f2eb1170ac2763deee2d059d514c08297 Mon Sep 17 00:00:00 2001 From: 06wj <06wj@163.com> Date: Fri, 9 Oct 2020 14:08:59 +0800 Subject: [PATCH] feat: add material.frontFace --- src/material/Material.js | 10 +++++++++- src/renderer/WebGLRenderer.js | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/material/Material.js b/src/material/Material.js index 0c54fc5c..09e0d19e 100644 --- a/src/material/Material.js +++ b/src/material/Material.js @@ -13,7 +13,8 @@ const { FUNC_ADD, ONE, SRC_ALPHA, - ONE_MINUS_SRC_ALPHA + ONE_MINUS_SRC_ALPHA, + CCW, } = constants; const blankInfo = { @@ -63,6 +64,13 @@ const Material = Class.create(/** @lends Material.prototype */ { */ wireframe: false, + /** + * front face winding orientation + * @default CCW + * @type {GLenum} + */ + frontFace: CCW, + /** * 是否开启深度测试 * @default true diff --git a/src/renderer/WebGLRenderer.js b/src/renderer/WebGLRenderer.js index 517ac3ba..e5279eb4 100644 --- a/src/renderer/WebGLRenderer.js +++ b/src/renderer/WebGLRenderer.js @@ -524,6 +524,7 @@ const WebGLRenderer = Class.create(/** @lends WebGLRenderer.prototype */ { if (material.cullFace && material.cullFaceType !== FRONT_AND_BACK) { state.enable(CULL_FACE); state.cullFace(material.cullFaceType); + state.frontFace(material.frontFace); } else { state.disable(CULL_FACE); }