>

체인 링크 표면을 만들려고합니다. 텍스처가 2 개 있습니다. 흰색 배경을 가진 금속 링크의 금속 모양을 가진 표준 맵 (확산) :

알파 맵도 있습니다 :

이 두 가지를 모두 MeshBasicMaterial 에 적용하려고합니다.  운없이 :

var chainlinkMask = THREE.ImageUtils.loadTexture('textures/chainlink_Large-Panels_mask.png');
chainlinkMask.wrapS = THREE.RepeatWrapping;
chainlinkMask.wrapT = THREE.RepeatWrapping;
chainlinkMask.repeat.set( 2, 2 );
var chainlinkDiffuse = THREE.ImageUtils.loadTexture('textures/chainlink_Large-Panels_Diffuse.png');
chainlinkDiffuse.wrapS = THREE.RepeatWrapping;
chainlinkDiffuse.wrapT = THREE.RepeatWrapping;
chainlinkDiffuse.repeat.set( 2, 2 );
material.map = chainlinkMask;
material.alphaMap = chainlinkDiffuse;
material.transparency = true;
material.side = THREE.DoubleSide;

이것은 다음을 제공합니다 :

알다시피, 알파 맵은 적용되지 않습니다.

왜 안돼?

도움을 주시면 감사하겠습니다.

  • 답변 # 1

    와이즈 비즈 설정해보기   transparent 에 대한 매개 변수   true 대신

    transparency
    
    

  • 답변 # 2

    알파 맵을 사용하는 경우 머티리얼을 정의 할 때 다음 두 패턴 중 하나를 사용하십시오.

    material.transparent = true;
    
    

    또는

    alphaMap: texture,
    transparent: true,
    
    

    가능한 경우 후자를 사용하고 투명한 것이 사실 일 때 발생할 수있는 인공물을 피하십시오.

    three.js r.85

  • 답변 # 3

    직접 alphaMap: texture, alphaTest: 0.5, // if transparent is false transparent: false, 사용  예를 들어 렌더링 문제가 발생합니다. 각각 material.transparent 가 적용된 2 개의 코싱 평면이 있습니다. 및 material.transparent = true . 회전하면 렌더링 문제가 발생합니다. 위에서 언급 한 @WestLangley 솔루션을 사용하십시오.

    material.side = DoubleSide

  • 이전 javascript - Angular 2 CLI ng 빌드-시계 세트 구성
  • 다음 Java (Android)로 YYYY-MM-DD 형식으로 현재 날짜 가져 오기