W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
用于對網(wǎng)格表面上的加權(quán)隨機(jī)點(diǎn)進(jìn)行采樣的實(shí)用程序類。
加權(quán)采樣對于某些地形區(qū)域中較重的樹葉生長或網(wǎng)格特定部分的集中粒子發(fā)射等效果很有用。頂點(diǎn)權(quán)重可以編程方式編寫,也可以在 Blender 等 3D 工具中手工繪制為頂點(diǎn)顏色。
// Create a sampler for a Mesh surface.
const sampler = new MeshSurfaceSampler( surfaceMesh )
.setWeightAttribute( 'color' )
.build();
const sampleMesh = new THREE.InstancedMesh( sampleGeometry, sampleMaterial, 100 );
const _position = new THREE.Vector3();
const _matrix = new THREE.Matrix4();
// Sample randomly from the surface, creating an instance of the sample
// geometry at each sample point.
for ( let i = 0; i < 100; i ++ ) {
sampler.sample( _position );
_matrix.makeTranslation( _position.x, _position.y, _position.z );
mesh.setMatrixAt( i, _matrix );
}
mesh.instanceMatrix.needsUpdate = true;
scene.add( mesh );
mesh — 從中采樣的表面網(wǎng)格。
創(chuàng)建一個(gè)新的 MeshSurfaceSampler。如果輸入幾何體被索引,則創(chuàng)建一個(gè)非索引副本。構(gòu)建之后,采樣器無法返回樣本,直到調(diào)用構(gòu)建。
指定從表面采樣時(shí)用作權(quán)重的頂點(diǎn)屬性。權(quán)重較高的人臉更有可能被采樣,而權(quán)重為零的人臉則根本不會(huì)被采樣。對于矢量屬性,僅 .x 用于采樣。
如果未選擇權(quán)重屬性,則采樣按區(qū)域隨機(jī)分布。
處理輸入幾何并準(zhǔn)備返回樣本。幾何或采樣器的任何配置都必須在調(diào)用此方法之前進(jìn)行。對于具有 n 個(gè)面的表面,時(shí)間復(fù)雜度為 O(n)。
在輸入幾何體的表面上選擇一個(gè)隨機(jī)點(diǎn),返回該點(diǎn)的位置以及可選的法向量和顏色。對于具有 n 個(gè)面的表面,時(shí)間復(fù)雜度為 O(log n)。
examples/jsm/math/MeshSurfaceSampler.js
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: