Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
ddbbcae1
T
three.js
项目概览
Ablesons
/
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,体验更适合开发者的 AI 搜索 >>
提交
ddbbcae1
编写于
6月 25, 2014
作者:
O
OpenShift guest
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix the hack __webglInit for geometry that needs buffer updates.
上级
3a3c3e5c
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
80 addition
and
55 deletion
+80
-55
editor/js/Menubar.Edit.js
editor/js/Menubar.Edit.js
+5
-3
editor/js/Sidebar.Geometry.BoxGeometry.js
editor/js/Sidebar.Geometry.BoxGeometry.js
+2
-1
editor/js/Sidebar.Geometry.CircleGeometry.js
editor/js/Sidebar.Geometry.CircleGeometry.js
+2
-2
editor/js/Sidebar.Geometry.CylinderGeometry.js
editor/js/Sidebar.Geometry.CylinderGeometry.js
+2
-1
editor/js/Sidebar.Geometry.IcosahedronGeometry.js
editor/js/Sidebar.Geometry.IcosahedronGeometry.js
+2
-1
editor/js/Sidebar.Geometry.PlaneGeometry.js
editor/js/Sidebar.Geometry.PlaneGeometry.js
+2
-1
editor/js/Sidebar.Geometry.SphereGeometry.js
editor/js/Sidebar.Geometry.SphereGeometry.js
+2
-1
editor/js/Sidebar.Geometry.TorusGeometry.js
editor/js/Sidebar.Geometry.TorusGeometry.js
+2
-1
editor/js/Sidebar.Geometry.TorusKnotGeometry.js
editor/js/Sidebar.Geometry.TorusKnotGeometry.js
+2
-1
src/renderers/WebGLRenderer.js
src/renderers/WebGLRenderer.js
+59
-43
未找到文件。
editor/js/Menubar.Edit.js
浏览文件 @
ddbbcae1
...
...
@@ -47,7 +47,7 @@ Menubar.Edit = function ( editor ) {
if
(
confirm
(
'
Convert
'
+
object
.
name
+
'
to BufferGeometry?
'
)
===
false
)
return
;
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
This is not yet fixed for buffergeometry
object
.
geometry
=
new
THREE
.
BufferGeometry
().
fromGeometry
(
object
.
geometry
);
...
...
@@ -65,17 +65,19 @@ Menubar.Edit = function ( editor ) {
if
(
confirm
(
'
Flatten
'
+
object
.
name
+
'
?
'
)
===
false
)
return
;
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
var
geometry
=
object
.
geometry
.
clone
();
geometry
.
applyMatrix
(
object
.
matrix
);
object
.
geometry
=
geometry
;
object
.
position
.
set
(
0
,
0
,
0
);
object
.
rotation
.
set
(
0
,
0
,
0
);
object
.
scale
.
set
(
1
,
1
,
1
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
editor
.
signals
.
objectChanged
.
dispatch
(
object
);
}
...
...
editor/js/Sidebar.Geometry.BoxGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -68,7 +68,7 @@ Sidebar.Geometry.BoxGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -81,6 +81,7 @@ Sidebar.Geometry.BoxGeometry = function ( signals, object ) {
depthSegments
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
editor/js/Sidebar.Geometry.CircleGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -28,7 +28,7 @@ Sidebar.Geometry.CircleGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -36,7 +36,7 @@ Sidebar.Geometry.CircleGeometry = function ( signals, object ) {
radius
.
getValue
(),
segments
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
editor/js/Sidebar.Geometry.CylinderGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -68,7 +68,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -81,6 +81,7 @@ Sidebar.Geometry.CylinderGeometry = function ( signals, object ) {
openEnded
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
editor/js/Sidebar.Geometry.IcosahedronGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -29,7 +29,7 @@ Sidebar.Geometry.IcosahedronGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -38,6 +38,7 @@ Sidebar.Geometry.IcosahedronGeometry = function ( signals, object ) {
detail
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
editor/js/Sidebar.Geometry.PlaneGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -49,7 +49,7 @@ Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -60,6 +60,7 @@ Sidebar.Geometry.PlaneGeometry = function ( signals, object ) {
heightSegments
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
editor/js/Sidebar.Geometry.SphereGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -79,7 +79,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -93,6 +93,7 @@ Sidebar.Geometry.SphereGeometry = function ( signals, object ) {
thetaLength
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
editor/js/Sidebar.Geometry.TorusGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -59,7 +59,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -71,6 +71,7 @@ Sidebar.Geometry.TorusGeometry = function ( signals, object ) {
arc
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
editor/js/Sidebar.Geometry.TorusKnotGeometry.js
浏览文件 @
ddbbcae1
...
...
@@ -79,7 +79,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
function
update
()
{
delete
object
.
__webglInit
;
// TODO: Remove hack (WebGLRenderer refactoring)
//
delete object.__webglInit; // TODO: Remove hack (WebGLRenderer refactoring)
object
.
geometry
.
dispose
();
...
...
@@ -93,6 +93,7 @@ Sidebar.Geometry.TorusKnotGeometry = function ( signals, object ) {
heightScale
.
getValue
()
);
object
.
geometry
.
buffersNeedUpdate
=
true
;
object
.
geometry
.
computeBoundingSphere
();
signals
.
objectChanged
.
dispatch
(
object
);
...
...
src/renderers/WebGLRenderer.js
浏览文件 @
ddbbcae1
...
...
@@ -3680,7 +3680,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
updateObject
(
object
);
updateObject
(
scene
,
object
);
}
...
...
@@ -3690,7 +3690,7 @@ THREE.WebGLRenderer = function ( parameters ) {
function
addObject
(
object
,
scene
)
{
var
g
,
geometry
,
material
,
geometryGroup
;
var
g
,
geometry
,
geometryGroup
;
if
(
object
.
__webglInit
===
undefined
)
{
...
...
@@ -3715,39 +3715,14 @@ THREE.WebGLRenderer = function ( parameters ) {
initDirectBuffers
(
geometry
);
}
else
if
(
object
instanceof
THREE
.
Mesh
)
{
if
(
object
.
__webglActive
!==
undefined
)
{
material
=
object
.
material
;
if
(
geometry
.
geometryGroups
===
undefined
)
{
geometry
.
makeGroups
(
material
instanceof
THREE
.
MeshFaceMaterial
,
_glExtensionElementIndexUint
?
4294967296
:
65535
);
}
// create separate VBOs per geometry chunk
for
(
g
in
geometry
.
geometryGroups
)
{
geometryGroup
=
geometry
.
geometryGroups
[
g
];
// initialise VBO on the first access
if
(
!
geometryGroup
.
__webglVertexBuffer
)
{
createMeshBuffers
(
geometryGroup
);
initMeshBuffers
(
geometryGroup
,
object
);
geometry
.
verticesNeedUpdate
=
true
;
geometry
.
morphTargetsNeedUpdate
=
true
;
geometry
.
elementsNeedUpdate
=
true
;
geometry
.
uvsNeedUpdate
=
true
;
geometry
.
normalsNeedUpdate
=
true
;
geometry
.
tangentsNeedUpdate
=
true
;
geometry
.
colorsNeedUpdate
=
true
;
}
removeObject
(
object
,
scene
);
}
initGeometryGroups
(
scene
,
object
,
geometry
);
}
else
if
(
object
instanceof
THREE
.
Line
)
{
...
...
@@ -3790,16 +3765,6 @@ THREE.WebGLRenderer = function ( parameters ) {
addBuffer
(
scene
.
__webglObjects
,
geometry
,
object
);
}
else
if
(
geometry
instanceof
THREE
.
Geometry
)
{
for
(
g
in
geometry
.
geometryGroups
)
{
geometryGroup
=
geometry
.
geometryGroups
[
g
];
addBuffer
(
scene
.
__webglObjects
,
geometryGroup
,
object
);
}
}
}
else
if
(
object
instanceof
THREE
.
Line
||
...
...
@@ -3827,6 +3792,54 @@ THREE.WebGLRenderer = function ( parameters ) {
}
};
function
initGeometryGroups
(
scene
,
object
,
geometry
)
{
var
g
,
geometryGroup
,
material
,
addBuffers
=
false
;
material
=
object
.
material
;
if
(
geometry
.
geometryGroups
===
undefined
)
{
geometry
.
makeGroups
(
material
instanceof
THREE
.
MeshFaceMaterial
,
_glExtensionElementIndexUint
?
4294967296
:
65535
);
}
// create separate VBOs per geometry chunk
for
(
g
in
geometry
.
geometryGroups
)
{
geometryGroup
=
geometry
.
geometryGroups
[
g
];
// initialise VBO on the first access
if
(
!
geometryGroup
.
__webglVertexBuffer
)
{
createMeshBuffers
(
geometryGroup
);
initMeshBuffers
(
geometryGroup
,
object
);
geometry
.
verticesNeedUpdate
=
true
;
geometry
.
morphTargetsNeedUpdate
=
true
;
geometry
.
elementsNeedUpdate
=
true
;
geometry
.
uvsNeedUpdate
=
true
;
geometry
.
normalsNeedUpdate
=
true
;
geometry
.
tangentsNeedUpdate
=
true
;
geometry
.
colorsNeedUpdate
=
true
;
addBuffers
=
true
;
}
else
{
addBuffers
=
false
;
}
if
(
addBuffers
||
object
.
__webglActive
===
undefined
)
{
addBuffer
(
scene
.
__webglObjects
,
geometryGroup
,
object
);
}
}
object
.
__webglActive
=
true
;
}
function
addBuffer
(
objlist
,
buffer
,
object
)
{
...
...
@@ -3859,7 +3872,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// Objects updates
function
updateObject
(
object
)
{
function
updateObject
(
scene
,
object
)
{
var
geometry
=
object
.
geometry
,
geometryGroup
,
customAttributesDirty
,
material
;
...
...
@@ -3871,6 +3884,9 @@ THREE.WebGLRenderer = function ( parameters ) {
}
else
if
(
object
instanceof
THREE
.
Mesh
)
{
// check all geometry groups
if
(
geometry
.
buffersNeedUpdate
)
{
initGeometryGroups
(
scene
,
object
,
geometry
);
}
for
(
var
i
=
0
,
il
=
geometry
.
geometryGroupsList
.
length
;
i
<
il
;
i
++
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录