three.js ExtrudeGeometry

2023-02-16 17:34 更新

從一個(gè)形狀路徑中,擠壓出一個(gè)BufferGeometry。

示例

代碼示例

const length = 12, width = 8;

const shape = new THREE.Shape();
shape.moveTo( 0,0 );
shape.lineTo( 0, width );
shape.lineTo( length, width );
shape.lineTo( length, 0 );
shape.lineTo( 0, 0 );

const extrudeSettings = {
	steps: 2,
	depth: 16,
	bevelEnabled: true,
	bevelThickness: 1,
	bevelSize: 1,
	bevelOffset: 0,
	bevelSegments: 1
};

const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
const mesh = new THREE.Mesh( geometry, material ) ;
scene.add( mesh );

構(gòu)造器

ExtrudeGeometry(shapes : Array, options : Object)

shapes — 形狀或者一個(gè)包含形狀的數(shù)組。

options — 一個(gè)包含有下列參數(shù)的對(duì)象:

  • curveSegments — int,曲線上點(diǎn)的數(shù)量,默認(rèn)值是12。
  • steps — int,用于沿著擠出樣條的深度細(xì)分的點(diǎn)的數(shù)量,默認(rèn)值為1。
  • depth — float,擠出的形狀的深度,默認(rèn)值為1。
  • bevelEnabled — bool,對(duì)擠出的形狀應(yīng)用是否斜角,默認(rèn)值為true。
  • bevelThickness — float,設(shè)置原始形狀上斜角的厚度。默認(rèn)值為0.2。
  • bevelSize — float。斜角與原始形狀輪廓之間的延伸距離,默認(rèn)值為bevelThickness-0.1。
  • bevelOffset — float. Distance from the shape outline that the bevel starts. Default is 0.
  • bevelSegments — int。斜角的分段層數(shù),默認(rèn)值為3。
  • extrudePath — THREE.Curve對(duì)象。一條沿著被擠出形狀的三維樣條線。Bevels not supported for path extrusion.
  • UVGenerator — Object。提供了UV生成器函數(shù)的對(duì)象。

該對(duì)象將一個(gè)二維形狀擠出為一個(gè)三維幾何體。

當(dāng)使用這個(gè)幾何體創(chuàng)建Mesh的時(shí)候,如果你希望分別對(duì)它的表面和它擠出的側(cè)面使用單獨(dú)的材質(zhì),你可以使用一個(gè)材質(zhì)數(shù)組。 第一個(gè)材質(zhì)將用于其表面;第二個(gè)材質(zhì)則將用于其擠壓出的側(cè)面。

屬性

共有屬性請(qǐng)參見(jiàn)其基類BufferGeometry。

.parameters : Object

一個(gè)包含著構(gòu)造函數(shù)中每個(gè)參數(shù)的對(duì)象。在對(duì)象實(shí)例化之后,對(duì)該屬性的任何修改都不會(huì)改變這個(gè)幾何體。

方法(Methods)

共有方法請(qǐng)參見(jiàn)其基類BufferGeometry。

源代碼

src/geometries/ExtrudeGeometry.js


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)