瀏覽代碼

[threejs] Explicitely discard fragments with alpha < 0.5, closes #1985

Mario Zechner 3 年之前
父節點
當前提交
738217f8c1
共有 2 個文件被更改,包括 2 次插入0 次删除
  1. 1 0
      CHANGELOG.md
  2. 1 0
      spine-ts/spine-threejs/src/SkeletonMesh.ts

+ 1 - 0
CHANGELOG.md

@@ -234,6 +234,7 @@
 ### Three.js backend
 * `SkeletonMesh` now takes an optional `SkeletonMeshMaterialParametersCustomizer` function that allows you to modify the `ShaderMaterialParameters` before the material is finalized. Use it to modify things like THREEJS' `Material.depthTest` etc. See #1590.
 * **Breaking change:** the global object `spine.canvas` no longer exists. All classes and functions are now exposed on the global `spine` object directly. Simply replace any reference to `spine.threejs.` in your source code with `spine.`.
+* **Breaking change:** the default fragment shader of `SkeletonMeshMaterial` now explicitely discards fragments with alpha < 0.5. See https://github.com/EsotericSoftware/spine-runtimes/issues/1985
 
 ### Player
 * Added `SpinePlayerConfig.rawDataURIs`. Allows to embed data URIs for skeletons, atlases and atlas page images directly in the HTML/JS without needing to load it from a separate file. See the example for a demonstration.

+ 1 - 0
spine-ts/spine-threejs/src/SkeletonMesh.ts

@@ -54,6 +54,7 @@ export class SkeletonMeshMaterial extends THREE.ShaderMaterial {
 			varying vec4 vColor;
 			void main(void) {
 				gl_FragColor = texture2D(map, vUv)*vColor;
+				if (gl_FragColor.a < 0.5) discard;
 			}
 		`;