Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
eb1ff2ce
T
three.js
项目概览
车家大少爷
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
eb1ff2ce
编写于
2月 03, 2018
作者:
D
Don McCurdy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
BufferGeometryUtils: Fix groups on indexed geometry.
上级
0566ee81
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
6 deletion
+17
-6
docs/api/core/BufferGeometry.html
docs/api/core/BufferGeometry.html
+3
-2
examples/js/BufferGeometryUtils.js
examples/js/BufferGeometryUtils.js
+11
-2
test/unit/example/BufferGeometryUtils.tests.js
test/unit/example/BufferGeometryUtils.tests.js
+3
-2
未找到文件。
docs/api/core/BufferGeometry.html
浏览文件 @
eb1ff2ce
...
@@ -134,8 +134,9 @@
...
@@ -134,8 +134,9 @@
Each group is an object of the form:
Each group is an object of the form:
<code>
{ start: Integer, count: Integer, materialIndex: Integer }
</code>
<code>
{ start: Integer, count: Integer, materialIndex: Integer }
</code>
where start specifies the index of the first vertex in this draw call, count specifies
where start specifies the first element in this draw call – the first vertex for non-indexed geometry,
how many vertices are included, and materialIndex specifies the material array index to use.
<br
/><br
/>
otherwise the first triangle index. Count specifies how many vertices (or indices) are included, and
materialIndex specifies the material array index to use.
<br
/><br
/>
Use [page:.addGroup] to add groups, rather than modifying this array directly.
Use [page:.addGroup] to add groups, rather than modifying this array directly.
</div>
</div>
...
...
examples/js/BufferGeometryUtils.js
浏览文件 @
eb1ff2ce
...
@@ -245,8 +245,17 @@ THREE.BufferGeometryUtils = {
...
@@ -245,8 +245,17 @@ THREE.BufferGeometryUtils = {
// create new group for this geometry
// create new group for this geometry
mergedGeometry
.
addGroup
(
offset
,
geometry
.
attributes
.
position
.
count
,
i
);
if
(
isIndexed
)
{
offset
+=
geometry
.
attributes
.
position
.
count
;
mergedGeometry
.
addGroup
(
offset
,
geometry
.
index
.
count
,
i
);
offset
+=
geometry
.
index
.
count
;
}
else
{
mergedGeometry
.
addGroup
(
offset
,
geometry
.
attributes
.
position
.
count
,
i
);
offset
+=
geometry
.
attributes
.
position
.
count
;
}
}
}
...
...
test/unit/example/BufferGeometryUtils.tests.js
浏览文件 @
eb1ff2ce
...
@@ -64,7 +64,7 @@ export default QUnit.module( 'BufferGeometryUtils', () => {
...
@@ -64,7 +64,7 @@ export default QUnit.module( 'BufferGeometryUtils', () => {
var
geometry1
=
new
THREE
.
BufferGeometry
();
var
geometry1
=
new
THREE
.
BufferGeometry
();
geometry1
.
addAttribute
(
'
position
'
,
new
THREE
.
BufferAttribute
(
new
Float32Array
(
[
1
,
2
,
3
]
),
1
,
false
)
);
geometry1
.
addAttribute
(
'
position
'
,
new
THREE
.
BufferAttribute
(
new
Float32Array
(
[
1
,
2
,
3
]
),
1
,
false
)
);
geometry1
.
setIndex
(
new
THREE
.
BufferAttribute
(
new
Uint16Array
(
[
0
,
1
,
2
]
),
1
,
false
)
);
geometry1
.
setIndex
(
new
THREE
.
BufferAttribute
(
new
Uint16Array
(
[
0
,
1
,
2
,
2
,
1
,
0
]
),
1
,
false
)
);
var
geometry2
=
new
THREE
.
BufferGeometry
();
var
geometry2
=
new
THREE
.
BufferGeometry
();
geometry2
.
addAttribute
(
'
position
'
,
new
THREE
.
BufferAttribute
(
new
Float32Array
(
[
4
,
5
,
6
]
),
1
,
false
)
);
geometry2
.
addAttribute
(
'
position
'
,
new
THREE
.
BufferAttribute
(
new
Float32Array
(
[
4
,
5
,
6
]
),
1
,
false
)
);
...
@@ -74,7 +74,8 @@ export default QUnit.module( 'BufferGeometryUtils', () => {
...
@@ -74,7 +74,8 @@ export default QUnit.module( 'BufferGeometryUtils', () => {
assert
.
ok
(
mergedGeometry
,
'
merge succeeds
'
);
assert
.
ok
(
mergedGeometry
,
'
merge succeeds
'
);
assert
.
smartEqual
(
Array
.
from
(
mergedGeometry
.
attributes
.
position
.
array
),
[
1
,
2
,
3
,
4
,
5
,
6
],
'
merges elements
'
);
assert
.
smartEqual
(
Array
.
from
(
mergedGeometry
.
attributes
.
position
.
array
),
[
1
,
2
,
3
,
4
,
5
,
6
],
'
merges elements
'
);
assert
.
smartEqual
(
Array
.
from
(
mergedGeometry
.
index
.
array
),
[
0
,
1
,
2
,
3
,
4
,
5
],
'
merges indices
'
);
assert
.
smartEqual
(
Array
.
from
(
mergedGeometry
.
index
.
array
),
[
0
,
1
,
2
,
2
,
1
,
0
,
3
,
4
,
5
],
'
merges indices
'
);
assert
.
smartEqual
(
[
{
start
:
0
,
count
:
6
,
materialIndex
:
0
},
{
start
:
6
,
count
:
3
,
materialIndex
:
1
}
],
mergedGeometry
.
groups
,
'
creates groups
'
);
assert
.
equal
(
mergedGeometry
.
attributes
.
position
.
itemSize
,
1
,
'
retains .itemSize
'
);
assert
.
equal
(
mergedGeometry
.
attributes
.
position
.
itemSize
,
1
,
'
retains .itemSize
'
);
}
);
}
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录