Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
7bd8b8bc
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,发现更多精彩内容 >>
未验证
提交
7bd8b8bc
编写于
2月 19, 2019
作者:
M
Mr.doob
提交者:
GitHub
2月 19, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15802 from gogoend/zh_doc
Zh docs : translations and fixes.
上级
b0d421ab
2074d12b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
129 addition
and
24 deletion
+129
-24
docs/api/zh/helpers/PositionalAudioHelper.html
docs/api/zh/helpers/PositionalAudioHelper.html
+19
-19
docs/api/zh/textures/Texture.html
docs/api/zh/textures/Texture.html
+1
-1
docs/list.js
docs/list.js
+1
-1
docs/manual/zh/introduction/Creating-a-scene.html
docs/manual/zh/introduction/Creating-a-scene.html
+1
-1
docs/manual/zh/introduction/How-to-dispose-of-objects.html
docs/manual/zh/introduction/How-to-dispose-of-objects.html
+107
-2
未找到文件。
docs/api/zh/helpers/PositionalAudioHelper.html
浏览文件 @
7bd8b8bc
...
...
@@ -12,13 +12,13 @@
<h1>
[name]
</h1>
<p
class=
"desc"
>
This helper displays the directional cone of a [page:PositionalAudio].
</p>
<p
class=
"desc"
>
这一辅助对象显示[page:PositionalAudio]的方向锥。
</p>
<h2>
Example
</h2>
<h2>
示例
</h2>
<div>
[example:webaudio_orientation webaudio / orientation ]
</div>
<h2>
Code Example
</h2>
<h2>
示例代码
</h2>
<code>
var positionalAudio = new THREE.PositionalAudio( listener );
positionalAudio.setDirectionalCone( 180, 230, 0.1 );
...
...
@@ -28,45 +28,45 @@ positionalAudio.add( helper );
</code>
<h2>
Constructor
</h2>
<h2>
构造函数
</h2>
<h3>
[name]( [param:PositionalAudio audio], [param:Number range] )
</h3>
<p>
[page:PositionalAudio audio] --
The [page:PositionalAudio] to be visualized.
<br
/><br/>
[page:PositionalAudio audio] --
将会被可视化的[page:PositionalAudio]。
<br
/><br/>
[page:Number range] --
(optional) The range of the directional cone.
<br
/><br/>
[page:Number range] --
(可选)方向锥的范围。
<br
/><br/>
[page:Number divisionsInnerAngle] --
(optional) The amount of divisions of the inner part of the directional cone.
<br
/><br/>
[page:Number divisionsInnerAngle] --
(可选)方向锥内侧部分的分段数。
<br
/><br/>
[page:Number divisionsOuterAngle] --
(optional) The amount of divisions of the outer part of the directional cone.
<br
/><br/>
[page:Number divisionsOuterAngle] --
(可选)方向锥外侧部分的分段数。
<br
/><br/>
</p>
<h2>
Properties
</h2>
<p>
See the base [page:Object3D] class for common properties.
</p>
<h2>
属性
</h2>
<p>
请参阅其基类[page:Object3D]来了解共有属性。
</p>
<h3>
[property:PositionalAudio audio]
</h3>
<p>
[page:PositionalAudio] to be visualized.
</p>
<p>
将会被可视化的[page:PositionalAudio]。
</p>
<h3>
[property:Number range]
</h3>
<p>
The range of the directional cone.
</p>
<p>
方向锥的范围。
</p>
<h3>
[property:Number divisionsInnerAngle]
</h3>
<p>
The amount of divisions of the inner part of the directional cone.
</p>
<p>
方向锥内侧部分的分段数。
</p>
<h3>
[property:Number divisionsOuterAngle]
</h3>
<p>
The amount of divisions of the outer part of the directional cone.
</p>
<p>
方向锥外侧部分的分段数。
</p>
<h2>
Methods
</h2>
<p>
See the base [page:Object3D] class for common methods.
</p>
<h2>
方法
</h2>
<p>
请参阅其基类[page:Object3D]来了解共有方法。
</p>
<h3>
[method:null dispose]()
</h3>
<p>
Disposes of the helper.
</p>
<p>
废置这一辅助对象。
</p>
<h3>
[method:null update]()
</h3>
<p>
Updates the helper.
</p>
<p>
更新这一辅助对象。
</p>
<h2>
Source
</h2>
<h2>
源代码
</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
...
...
docs/api/zh/textures/Texture.html
浏览文件 @
7bd8b8bc
...
...
@@ -244,7 +244,7 @@
<h3>
[method:null dispose]()
</h3>
<p>
使用“
dispose
”事件类型调用[page:EventDispatcher EventDispatcher].dispatchEvent。
使用“
废置
”事件类型调用[page:EventDispatcher EventDispatcher].dispatchEvent。
</p>
<h3>
[method:Vector2 transformUv]( [param:Vector2 uv] )
</h3>
...
...
docs/list.js
浏览文件 @
7bd8b8bc
...
...
@@ -449,7 +449,7 @@ var list = {
"
进阶
"
:
{
"
如何更新场景
"
:
"
manual/zh/introduction/How-to-update-things
"
,
"
How to dispose of objects
"
:
"
manual/zh/introduction/How-to-dispose-of-objects
"
,
"
如何废置对象
"
:
"
manual/zh/introduction/How-to-dispose-of-objects
"
,
"
如何创建VR内容
"
:
"
manual/zh/introduction/How-to-create-VR-content
"
,
"
矩阵变换
"
:
"
manual/zh/introduction/Matrix-transformations
"
,
"
动画系统
"
:
"
manual/zh/introduction/Animation-system
"
...
...
docs/manual/zh/introduction/Creating-a-scene.html
浏览文件 @
7bd8b8bc
...
...
@@ -10,7 +10,7 @@
<body>
<h1>
创建一个场景([name])
</h1><br
/>
<p>
这一部分将对three.js来做一个简要的介绍;我们将开始搭建一个
的
场景,其中包含一个正在旋转的立方体。页面下方有一个已经完成的例子,当你遇到麻烦,或者需要帮助的时候,可以看一看。
</p>
<p>
这一部分将对three.js来做一个简要的介绍;我们将开始搭建一个场景,其中包含一个正在旋转的立方体。页面下方有一个已经完成的例子,当你遇到麻烦,或者需要帮助的时候,可以看一看。
</p>
<h2>
开始之前
</h2>
<p>
...
...
docs/manual/zh/introduction/How-to-dispose-of-objects.html
浏览文件 @
7bd8b8bc
...
...
@@ -10,10 +10,115 @@
</head>
<body>
<h1>
[name]
</h1>
<h1>
如何废置对象([name])
</h1>
<br
/>
TODO
<p>
为了提高性能,并避免应用程序中的内存泄露,一个重要的方面是废置未使用的类库实体。
每当你创建一个*three.js*中的实例时,都会分配一定数量的内存。然而,*three.js*会创建在渲染中所必需的特定对象,
例如几何体或材质,以及与WebGL相关的实体,例如buffers或着色器程序。
非常值得注意的是,这些对象并不会被自动释放;相反,应用程序必须使用特殊的API来释放这些资源。
本指南简要概述了这一API是如何使用的,以及哪些对象是和这一环境相关的。
</p>
<h2>
几何体
</h2>
<p>
几何体常用来表示定义为属性集合的顶点信息,*three.js*在内部为每一个属性创建一个[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer WebGLBuffer]类型的对象。
这些实体仅有在调用[page:BufferGeometry.dispose]()的时候才会被删除。
如果应用程序中的几何体已废弃,请执行该方法以释放所有相关资源。
</p>
<h2>
材质
</h2>
<p>
材质定义了物体将如何被渲染。*three.js*使用材质所定义的信息来构造一个着色器程序,以用于渲染。
着色器程序只有在相应材质被废置后才能被删除。由于性能的原因,*three.js*尽可能尝试复用已存在的着色器程序。
因此,着色器程序只有在所有相关材质被废置后才被删除。
你可以通过执行[page:Material.dispose]()方法来废置材质。
</p>
<h2>
纹理
</h2>
<p>
对材质的废置不会对纹理造成影响。它们是分离的,因此一个纹理可以同时被多个材质所使用。
每当你创建一个[page:Texture]实例的时候,three.js在内部会创建一个[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture WebGLTexture]实例。
和buffer相似,该对象只能通过调用[page:Texture.dispose]()来删除。
</p>
<h2>
渲染目标
</h2>
<p>
[page:WebGLRenderTarget]类型的对象不仅分配了[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture WebGLTexture]的实例,
还分配了[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLFramebuffer WebGLFramebuffer]和[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderbuffer WebGLRenderbuffer]来实现自定义渲染目标。
这些对象仅能通过执行[page:WebGLRenderTarget.dispose]()来解除分配。
</p>
<h2>
杂项
</h2>
<p>
有一些来自examples目录的类,例如控制器或者后期处理过程,提供了*dispose()*方法以用于移除内部事件监听器或渲染目标。
通常来讲,非常建议查阅类的API或者文档,并注意*dispose()*。如果存在的话,你应当在清理时使用它。
</p>
<h2>
常见问题
</h2>
<h3>
为何*three.js*不能够自动废置对象?
</h3>
<p>
这一问题在社区中多次被问到,因此澄清这件事情是十分有必要的。事实是,*three.js*并不知道用户所创建的实体(例如几何体或者材质)的生命周期或作用范围,这些是应用程序的责任。
比如说,即使一个材质当前没有被用于渲染,但它也可能是下一帧所必需的。
因此,如果应用程序决定某个对象可以被删除,则它必须通过调用对应的*dispose()*方法来通知引擎。
</p>
<h3>
将一个mesh(网格)从场景中移除,是否也会废置它的geometry(几何体)和material(材质)?
</h3>
<p>
并不会,你必须通过*dispose()*来明确地废置geometry(几何体)或material(材质)。
请记住,eometry(几何体)或material(材质)可以在3D物体之间(例如mesh(网格))被共享。
</p>
<h3>
*three.js*是否会提供被缓存对象数量的相关信息?
</h3>
<p>
是的,可以评估[page:WebGLRenderer.info] —— 渲染器中的一个特殊属性,具有一系列关于显存和渲染过程的统计信息。
除此之外,它还告诉你有多少纹理、几何体和着色器程序在内部存储。
如果你在你的应用程序中注意到了性能问题,一个较好的方法便是调试该属性,以便轻松识别内存泄漏。
</p>
<p>
对于纹理的内部资源仅在图像完全被加载后才会分配。如果你在图像被加载之前废置纹理,什么都不会发生。
没有资源被分配,因此也没有必要进行清理。
</p>
<h3>
当你在纹理还没有被加载时,在纹理上调用*dispose()*,会发生什么?
</h3>
<p>
对于纹理的内部资源仅在图像完全被加载后才会分配。如果你在图像被加载之前废置纹理,什么都不会发生。
没有资源被分配,因此也没有必要进行清理。
</p>
<h3>
当我在调用*dispose()*之后,使用相应的对象会发生什么?
</h3>
<p>
被删除掉的内部资源会被引擎重新创建,因此不会有运行时错误发生,但你可能会注意到这会对当前帧的性能有一些影响,特别是当着色器程序被编译的时候。
</p>
<h3>
我如何在我的应用程序中管理*three.js*中的对象?我如何知道什么时候该废置事物?
</h3>
<p>
一般来说,对此并没有明确的建议。调用*dispose()*什么时候合适,很大程度上取决于具体的用例。
必须指出的是,没有必要总是废置对象。一个较好的例子便是一个由多个关卡所组成的游戏。使用到对象废置的地方就是当切换关卡的时候。
应用程序可以通过较老的场景,并废置所有过时的材质、几何体和纹理贴图。
正如在前面的章节中所提到,如果你废置一个仍然在使用的对象,并不会导致运行时错误。可能发生的最糟糕的事情便是单帧的性能会下降。
</p>
<h2>
演示dispose()使用方法的示例
</h2>
<p>
[example:webgl_test_memory WebGL / test / memory]
<br
/>
[example:webgl_test_memory2 WebGL / test / memory2]
<br
/>
</p>
</body>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录