代码如下:
THREE.PlaneGeometry = 함수(width, height, widthSegments, heightSegments){
/* 약간*/
}
각 매개변수의 의미: 너비, 높이, 너비 세그먼트 수 및 높이 세그먼트 수입니다. 독자는 "그리드"를 구성하는 이러한 방법에 익숙해야 합니다.
몇 가지 다른 정보는 소스 코드에서 얻습니다. 평면은 x-y 평면에 구성되며 원점은 직사각형의 중심점입니다.
Geometry::ExtrudeGeometry
이 개체는 이제 일반적인 기하학적 형태를 구성하는 방법이지만 일반적으로 우리는 모델링된 개체를 특정 형식으로 파일에 저장하고 로더를 통해 로드합니다. , 그래서 이 기능을 직접적으로 사용할 기회는 거의 없는 것 같습니다. 게다가 이 기능은 옵션오브젝트에 설정이 많이 쌓여있어서 잘 살펴보지 못한 기능인 것 같습니다.
Material::Material
Material 객체는 다른 모든 종류의 Material에 대한 프로토타입 객체입니다.
THREE.Material = function () {
THREE .MaterialLibrary.push( this );
this.id = THREE.MaterialIdCount;
this.name = '';
this.side =
this.opacity; 1;
this.transparent = false;
this.blending = THREE.NormalBlending;
this.blendSrc = THREE.SrcAlphaFactor;
this.blendDst = THREE.OneMinusSrcAlphaFactor; = THREE.DepthTest = true;
this.polygonOffset = false;
this.polygonOffsetUnits = 0;
this.alphaTest = 0;
this.overdraw = false; // CanvasRenderer의 안티앨리어싱 간격을 수정하기 위한 부울
this.visible =
this.needsUpdate = true;
더 중요한 속성 중 일부를 살펴보겠습니다.
불투명도 속성은 투명도를 나타내는 0~1 범위의 값입니다. transparent 속성은 투명도를 사용할지 여부를 지정합니다. 값이 true인 경우에만 투명도와 혼합됩니다(투명이란 픽셀을 렌더링할 때 렌더링할 값과 기존 값이 함께 작동하여 렌더링 후 픽셀 값을 계산함을 의미함). 혼합 효과).
blending, blendSrc, blendDst, blendEquation 속성은 블렌딩 소스 Src의 블렌딩 방법과 가중치 지정 방법, 블렌딩 픽셀의 기존 픽셀 값 Dst를 지정합니다. 기본적으로(예: 생성자에 할당된 기본값) 새 픽셀 값은 새 값 × 알파 이전 값 × (1-알파)와 같습니다.
텍스처 이미지의 속성을 나타내는 Material 클래스에는 왜 가장 중요한 객체가 없는지 혼란스러웠습니다. 나중에 나는 실제로 재료와 질감 사이에 차이가 있다는 것을 깨달았습니다. 특정 재료에는 질감이 있다고 말할 수 있지만 질감이 없는 재료도 있습니다. 재질은 전체 모양의 렌더링 효과에 영향을 줍니다. 예: "두 끝점이 모두 불투명한 빨간색인 5px 너비의 선을 렌더링합니다." 이 설명은 재질로 간주될 수 있으며 텍스처와 관련이 없습니다.
많은 Geometry 객체와 마찬가지로 Material 객체에는 일반적인 clone(), dellocate() 및 setValues() 메서드를 제외하고는 다른 메서드가 없습니다. 다음은 가장 기본적인 두 가지 재료 개체입니다.
Material::LineBasicMaterial
이 생성자는 선형 모양을 렌더링하기 위한 재료를 만듭니다.
코드 복사
this.linewidth = 1; this.linecap = 'round'; this.linejoin = 'round'; this.vertexColors = false;
this.fog = true;
this.setValues(매개변수)
속성 색상 및 이름에서 알 수 있듯이 선폭은 선의 색상과 선의 너비를 나타냅니다(선에는 너비가 없으며 여기서 너비는 렌더링에 사용됩니다).
linecap 및 linejoin 속성은 선 끝점 및 연결점의 스타일을 지정합니다.
안개 속성은 이 물질이 안개의 영향을 받는지 여부를 지정합니다.
Material::MeshBasicMaterial
이 생성자는 메시 표면을 렌더링하는 데 사용되는 재료를 생성합니다.
코드 복사
코드는 다음과 같습니다.
THREE.MeshBasicMaterial = function (parameters) {
THREE.Material.call( this );
this.color = new THREE.Color( 0xffffff ); map = null;
this.lightMap = null;
this.envMap = null;
this.combine = THREE.MultiplyOperation; ;
this.refractionRatio = 0.98;
this.shading = THREE.SmoothShading;
this.wireframeLinewidth = 1; >this.wireframeLinecap = 'round';
this.wireframeLinejoin = 'round';
this.vertexColors = THREE.NoColors;
this.skinning = false; 🎜>this.setValues(parameters);
};
map, lightMap 및 specularMap을 포함하여 가장 중요한 텍스처 속성이 여기에 표시되며 모두 텍스처 유형 개체입니다.
wireframe 속성은 표면의 경계선이 렌더링되는지 여부를 지정하며, wireframe으로 시작하는 다음 속성은 경계선이 렌더링되는 경우 어떻게 렌더링되는지를 나타냅니다.
Texture::Texture
이 생성자는 텍스처 개체를 만드는 데 사용됩니다.
코드 복사
코드는 다음과 같습니다.
this.magFilter = magFilter !== 정의되지 않음 ? magFilter : THREE.LinearFilter = minFilter !== 정의되지 않음 minFilter: THREE .LinearMipMapLinearFilter; this.anisotropy !== 정의되지 않음 ? 이방성: 1;
this.format = 형식 !== 정의되지 않음 ? 형식:
this.type = 유형 !== 정의되지 않음 ? 유형: THREE.UnsignedByteType;
this.offset = new THREE.Vector2( 0, 0 )
this.repeat = new THREE.Vector2( 1, 1 ); generateMipmaps = true ;
this.premultiplyAlpha = false;
this.needsUpdate = false;
가장 중요한 속성은 이미지인데, 이는 JavaScript 이미지 유형 객체입니다. 전달되는 첫 번째 매개변수는 객체입니다. 객체를 생성하는 방법은 나중에 설명합니다.
다음의 객체는 모두 선택사항입니다. 생략하면 기본값이 채워지며, 기본값이 채워지는 경우가 많습니다.
magFileter 및 minFileter 속성은 확대 및 축소 시 텍스처의 필터링 방법(가장 가까운 이웃 점, 이중선형 보간 등)을 지정합니다.
URL에서 텍스처를 생성하려면 Three.ImageUtils.loadTexture(paras)를 호출해야 합니다. 이 함수는 텍스처 유형 개체를 반환합니다. THREE.ImageLoader.load(paras) 함수는 함수 내부에서 호출되고 THREE.Texture() 생성자는 이 함수 내부에서 호출되어 텍스처를 생성합니다.