codecamp

three.js InterleavedBuffer

"交叉存储" 表明多个类型的 attributes (例如,顶点位置、法向量、UV 和颜色值)被存储到一个队列中。如下链接有对交叉存储更详细的介绍: Interleaved array basics

例子

webgl / buffergeometry / points / interleaved

构造函数

InterleavedBuffer( array : TypedArray, stride : Integer )

array -- 一个基于共享缓存的类型化队列。该队列存储几何体相关数据。stride -- 每个顶点占用类型化队列的多少个元素。

属性

.array : Array

一个基于共享缓存的类型化队列。该队列存储几何体相关数据。

.stride : Integer

每个顶点占用类型化队列的多少个元素。

.count : Integer

类型化队列中,所有元素的数目。

.updateRange : Object

对象存储着需要更新的数据的偏移量和数量。- offset: 默认值为 0。- count: 默认值为 -1。

.uuid : String

该类所创建的实例的UUID。它是自动被指定的,因此它不应当被编辑、更改。

.version : Integer

版本号,每次 needsUpdate 属性设置为 true 时,版本号增加。

.needsUpdate : Integer

默认值为 false。该值被设置为 true 时,会导致 version 增加。

.usage : Usage

为优化目的定义数据存储的预期使用模式。对应WebGLRenderingContext.bufferData()的usage参数。

方法

.copy ( source : InterleavedBuffer ) : this

将参数指定的 InterleavedBuffer 拷贝到当前 InterleavedBuffer。

.copyAt ( index1 : Integer, attribute : InterleavedBuffer, index2 : Integer ) : this

将数据从 attribute[index2] 拷贝到 array[index1]。

.set ( value : TypedArray, offset : Integer ) : this

value - 被拷贝的源(类型化)队列。offset - 源队列中,数据开始拷贝的偏移量。默认值是 0.将源队列数据拷贝到目标队列缓存中。

.clone ( data : Object ) : InterleavedBuffer

data - 此对象保存正确克隆具有交错属性的几何图形所需的共享数组缓冲区。创建此 InterleavedBuffer 的克隆。

.setUsage ( value : Usage ) : this

将用法设置为值。

.toJSON ( data : Object ) : Object

数据 - 此对象包含正确序列化具有交错属性的几何图形所需的共享数组缓冲区。序列化此 InterleavedBuffer。

源代码

src/core/InterleavedBuffer.js


three.js InstancedInterleavedBuffer
three.js InterleavedBufferAttribute
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

参考

核心 / BufferAttributes

渲染器 / WebXR

开发者参考

WebGL渲染器

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }