three.js MeshToonMaterial

2023-02-16 17:45 更新

一種實現(xiàn)卡通著色的材質。

示例

例子

materials / variations / toon

構造函數(shù)

MeshToonMaterial( parameters : Object )

parameters -(可選)具有定義材料外觀的一個或多個屬性的對象。材料的任何屬性(包括從材料繼承的任何屬性)都可以在這里傳遞。

例外是屬性顏色,它可以作為十六進制字符串傳入,默認為 0xffffff(白色)。 Color.set( color ) 在內(nèi)部被調用。

屬性

請參閱基礎 Material 類以了解常見屬性。

.alphaMap : Texture

alpha 貼圖是一種灰度紋理,可控制整個表面的不透明度(黑色:完全透明;白色:完全不透明)。默認為空。

僅使用紋理的顏色,如果存在則忽略 alpha 通道。對于 RGB 和 RGBA 紋理,由于在 DXT 壓縮和未壓縮的 RGB 565 格式中為綠色提供了額外的精度,WebGL 渲染器將在對該紋理進行采樣時使用綠色通道。僅亮度和亮度/alpha 紋理也將按預期工作。

.aoMap : Texture

該紋理的紅色通道用作環(huán)境遮擋貼圖。默認為空。 aoMap 需要第二組 UV。

.aoMapIntensity : Float

環(huán)境遮擋效果的強度。默認值為 1。零表示沒有遮擋效果。

.bumpMap : Texture

創(chuàng)建凹凸貼圖的紋理。黑色和白色值映射到與燈光相關的感知深度。凹凸實際上不會影響對象的幾何形狀,只會影響光照。如果定義了法線貼圖,這將被忽略。

.bumpScale : Float

凹凸貼圖對材質的影響程度。典型范圍是 0-1。默認值為 1。

.color : Color

材質的顏色,默認設置為白色 (0xffffff)。

.displacementMap : Texture

置換貼圖影響網(wǎng)格頂點的位置。與其他僅影響材質明暗的貼圖不同,置換的頂點可以投射陰影、阻擋其他對象,并以其他方式充當真實幾何體。位移紋理是一個圖像,其中每個像素的值(白色為最高)映射到網(wǎng)格的頂點并重新定位。

.displacementScale : Float

置換貼圖對網(wǎng)格的影響程度(黑色表示無置換,白色表示最大置換)。如果沒有置換貼圖集,則不會應用此值。默認值為 1。

.displacementBias : Float

置換貼圖值在網(wǎng)格頂點上的偏移量。如果沒有置換貼圖集,則不會應用此值。默認為 0。

.emissive : Color

材料的發(fā)射(光)顏色,本質上是一種不受其他光照影響的純色。默認為黑色。

.emissiveMap : Texture

設置發(fā)射(發(fā)光)貼圖。默認為空。發(fā)射貼圖顏色由發(fā)射顏色和發(fā)射強度調制。如果您有自發(fā)光貼圖,請務必將自發(fā)光顏色設置為黑色以外的顏色。

.emissiveIntensity : Float

發(fā)射光的強度。調制發(fā)光顏色。默認值為 1。

.fog : Boolean

材質是否受霧影響。默認為true。

.gradientMap : Texture

卡通著色的漸變貼圖。使用此類紋理時,需要將 Texture.minFilter 和 Texture.magFilter 設置為 THREE.NearestFilter。默認為空。

.lightMap : Texture

光照貼圖。默認為空。 lightMap 需要第二組 UV。

.lightMapIntensity : Float

烘焙光的強度。默認值為 1。

.map : Texture

彩色地圖??梢赃x擇包含一個 alpha 通道,通常與 .transparent 或 .alphaTest 結合使用。默認為空。紋理貼圖顏色由漫反射顏色調制。

.normalMap : Texture

創(chuàng)建法線貼圖的紋理。 RGB 值影響每個像素片段的表面法線并改變顏色的點亮方式。法線貼圖不會改變表面的實際形狀,只會改變光照。如果材質具有使用左手慣例創(chuàng)作的法線貼圖,則應取反 normalScale 的 y 分量以補償不同的手性。

.normalMapType : Integer

法線貼圖的類型。

選項為 THREE.TangentSpaceNormalMap(默認)和 THREE.ObjectSpaceNormalMap。

.normalScale : Vector2

法線貼圖對材質的影響有多大。典型范圍是 0-1。默認是設置為 (1,1) 的 Vector2。

.wireframe : Boolean

將幾何渲染為線框。默認為 false(即呈現(xiàn)為平面多邊形)。

.wireframeLinecap : String

定義線端的外觀??赡艿闹禐椤癰utt”、“round”和“square”。默認為“圓形”。

這對應于 2D Canvas 的 lineCap 屬性,它會被 WebGL 渲染器忽略。

.wireframeLinejoin : String

定義線接頭的外觀??赡艿闹凳恰皉ound”、“bevel”和“miter”。默認為“圓形”。

這對應于 2D Canvas 的 lineJoin 屬性,它會被 WebGL 渲染器忽略。

.wireframeLinewidth : Float

控制線框厚度。默認值為 1。

由于 OpenGL Core Profile 與 WebGL 渲染器在大多數(shù)平臺上的限制,無論設置值如何,線寬始終為 1。

方法

有關常用方法,請參見基 Material 類。

源碼

src/materials/MeshToonMaterial.js


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號