Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
2655e47d
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,发现更多精彩内容 >>
提交
2655e47d
编写于
6月 22, 2019
作者:
A
aardgoose
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix lint errors
上级
d2c7ae35
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
49 addition
and
34 deletion
+49
-34
examples/js/misc/GPUComputationRenderer.js
examples/js/misc/GPUComputationRenderer.js
+24
-17
examples/jsm/misc/GPUComputationRenderer.js
examples/jsm/misc/GPUComputationRenderer.js
+25
-17
未找到文件。
examples/js/misc/GPUComputationRenderer.js
浏览文件 @
2655e47d
...
...
@@ -97,7 +97,7 @@
* @param {WebGLRenderer} renderer The renderer
*/
THREE
.
GPUComputationRenderer
=
function
(
sizeX
,
sizeY
,
renderer
)
{
THREE
.
GPUComputationRenderer
=
function
(
sizeX
,
sizeY
,
renderer
)
{
this
.
variables
=
[];
...
...
@@ -118,7 +118,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
scene
.
add
(
mesh
);
this
.
addVariable
=
function
(
variableName
,
computeFragmentShader
,
initialValueTexture
)
{
this
.
addVariable
=
function
(
variableName
,
computeFragmentShader
,
initialValueTexture
)
{
var
material
=
this
.
createShaderMaterial
(
computeFragmentShader
);
...
...
@@ -140,13 +140,13 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
setVariableDependencies
=
function
(
variable
,
dependencies
)
{
this
.
setVariableDependencies
=
function
(
variable
,
dependencies
)
{
variable
.
dependencies
=
dependencies
;
};
this
.
init
=
function
()
{
this
.
init
=
function
()
{
if
(
!
renderer
.
extensions
.
get
(
"
OES_texture_float
"
)
)
{
...
...
@@ -160,7 +160,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
}
for
(
var
i
=
0
;
i
<
this
.
variables
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
this
.
variables
.
length
;
i
++
)
{
var
variable
=
this
.
variables
[
i
];
...
...
@@ -175,7 +175,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
var
uniforms
=
material
.
uniforms
;
if
(
variable
.
dependencies
!==
null
)
{
for
(
var
d
=
0
;
d
<
variable
.
dependencies
.
length
;
d
++
)
{
for
(
var
d
=
0
;
d
<
variable
.
dependencies
.
length
;
d
++
)
{
var
depVar
=
variable
.
dependencies
[
d
];
...
...
@@ -183,16 +183,20 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
// Checks if variable exists
var
found
=
false
;
for
(
var
j
=
0
;
j
<
this
.
variables
.
length
;
j
++
)
{
for
(
var
j
=
0
;
j
<
this
.
variables
.
length
;
j
++
)
{
if
(
depVar
.
name
===
this
.
variables
[
j
].
name
)
{
found
=
true
;
break
;
}
}
if
(
!
found
)
{
return
"
Variable dependency not found. Variable=
"
+
variable
.
name
+
"
, dependency=
"
+
depVar
.
name
;
}
}
...
...
@@ -202,7 +206,9 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
material
.
fragmentShader
=
"
\n
uniform sampler2D
"
+
depVar
.
name
+
"
;
\n
"
+
material
.
fragmentShader
;
}
}
}
this
.
currentTextureIndex
=
0
;
...
...
@@ -211,12 +217,12 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
compute
=
function
()
{
this
.
compute
=
function
()
{
var
currentTextureIndex
=
this
.
currentTextureIndex
;
var
nextTextureIndex
=
this
.
currentTextureIndex
===
0
?
1
:
0
;
for
(
var
i
=
0
,
il
=
this
.
variables
.
length
;
i
<
il
;
i
++
)
{
for
(
var
i
=
0
,
il
=
this
.
variables
.
length
;
i
<
il
;
i
++
)
{
var
variable
=
this
.
variables
[
i
];
...
...
@@ -224,7 +230,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
if
(
variable
.
dependencies
!==
null
)
{
var
uniforms
=
variable
.
material
.
uniforms
;
for
(
var
d
=
0
,
dl
=
variable
.
dependencies
.
length
;
d
<
dl
;
d
++
)
{
for
(
var
d
=
0
,
dl
=
variable
.
dependencies
.
length
;
d
<
dl
;
d
++
)
{
var
depVar
=
variable
.
dependencies
[
d
];
...
...
@@ -240,15 +246,16 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
}
this
.
currentTextureIndex
=
nextTextureIndex
;
};
this
.
getCurrentRenderTarget
=
function
(
variable
)
{
this
.
getCurrentRenderTarget
=
function
(
variable
)
{
return
variable
.
renderTargets
[
this
.
currentTextureIndex
];
};
this
.
getAlternateRenderTarget
=
function
(
variable
)
{
this
.
getAlternateRenderTarget
=
function
(
variable
)
{
return
variable
.
renderTargets
[
this
.
currentTextureIndex
===
0
?
1
:
0
];
...
...
@@ -282,7 +289,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
this
.
createShaderMaterial
=
createShaderMaterial
;
this
.
createRenderTarget
=
function
(
sizeXTexture
,
sizeYTexture
,
wrapS
,
wrapT
,
minFilter
,
magFilter
)
{
this
.
createRenderTarget
=
function
(
sizeXTexture
,
sizeYTexture
,
wrapS
,
wrapT
,
minFilter
,
magFilter
)
{
sizeXTexture
=
sizeXTexture
||
sizeX
;
sizeYTexture
=
sizeYTexture
||
sizeY
;
...
...
@@ -308,7 +315,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
createTexture
=
function
()
{
this
.
createTexture
=
function
()
{
var
a
=
new
Float32Array
(
sizeX
*
sizeY
*
4
);
var
texture
=
new
THREE
.
DataTexture
(
a
,
sizeX
,
sizeY
,
THREE
.
RGBAFormat
,
THREE
.
FloatType
);
...
...
@@ -318,7 +325,7 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
renderTexture
=
function
(
input
,
output
)
{
this
.
renderTexture
=
function
(
input
,
output
)
{
// Takes a texture, and render out in rendertarget
// input = Texture
...
...
@@ -326,13 +333,13 @@ THREE.GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
passThruUniforms
.
texture
.
value
=
input
;
this
.
doRenderTarget
(
passThruShader
,
output
);
this
.
doRenderTarget
(
passThruShader
,
output
);
passThruUniforms
.
texture
.
value
=
null
;
};
this
.
doRenderTarget
=
function
(
material
,
output
)
{
this
.
doRenderTarget
=
function
(
material
,
output
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
...
...
examples/jsm/misc/GPUComputationRenderer.js
浏览文件 @
2655e47d
...
...
@@ -112,7 +112,7 @@ import {
WebGLRenderTarget
}
from
"
../../../build/three.module.js
"
;
var
GPUComputationRenderer
=
function
(
sizeX
,
sizeY
,
renderer
)
{
var
GPUComputationRenderer
=
function
(
sizeX
,
sizeY
,
renderer
)
{
this
.
variables
=
[];
...
...
@@ -133,7 +133,7 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
scene
.
add
(
mesh
);
this
.
addVariable
=
function
(
variableName
,
computeFragmentShader
,
initialValueTexture
)
{
this
.
addVariable
=
function
(
variableName
,
computeFragmentShader
,
initialValueTexture
)
{
var
material
=
this
.
createShaderMaterial
(
computeFragmentShader
);
...
...
@@ -155,13 +155,13 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
setVariableDependencies
=
function
(
variable
,
dependencies
)
{
this
.
setVariableDependencies
=
function
(
variable
,
dependencies
)
{
variable
.
dependencies
=
dependencies
;
};
this
.
init
=
function
()
{
this
.
init
=
function
()
{
if
(
!
renderer
.
extensions
.
get
(
"
OES_texture_float
"
)
)
{
...
...
@@ -175,7 +175,7 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
}
for
(
var
i
=
0
;
i
<
this
.
variables
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
this
.
variables
.
length
;
i
++
)
{
var
variable
=
this
.
variables
[
i
];
...
...
@@ -190,7 +190,7 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
var
uniforms
=
material
.
uniforms
;
if
(
variable
.
dependencies
!==
null
)
{
for
(
var
d
=
0
;
d
<
variable
.
dependencies
.
length
;
d
++
)
{
for
(
var
d
=
0
;
d
<
variable
.
dependencies
.
length
;
d
++
)
{
var
depVar
=
variable
.
dependencies
[
d
];
...
...
@@ -198,16 +198,21 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
// Checks if variable exists
var
found
=
false
;
for
(
var
j
=
0
;
j
<
this
.
variables
.
length
;
j
++
)
{
for
(
var
j
=
0
;
j
<
this
.
variables
.
length
;
j
++
)
{
if
(
depVar
.
name
===
this
.
variables
[
j
].
name
)
{
found
=
true
;
break
;
}
}
if
(
!
found
)
{
return
"
Variable dependency not found. Variable=
"
+
variable
.
name
+
"
, dependency=
"
+
depVar
.
name
;
}
}
...
...
@@ -217,7 +222,9 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
material
.
fragmentShader
=
"
\n
uniform sampler2D
"
+
depVar
.
name
+
"
;
\n
"
+
material
.
fragmentShader
;
}
}
}
this
.
currentTextureIndex
=
0
;
...
...
@@ -226,12 +233,12 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
compute
=
function
()
{
this
.
compute
=
function
()
{
var
currentTextureIndex
=
this
.
currentTextureIndex
;
var
nextTextureIndex
=
this
.
currentTextureIndex
===
0
?
1
:
0
;
for
(
var
i
=
0
,
il
=
this
.
variables
.
length
;
i
<
il
;
i
++
)
{
for
(
var
i
=
0
,
il
=
this
.
variables
.
length
;
i
<
il
;
i
++
)
{
var
variable
=
this
.
variables
[
i
];
...
...
@@ -239,7 +246,7 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
if
(
variable
.
dependencies
!==
null
)
{
var
uniforms
=
variable
.
material
.
uniforms
;
for
(
var
d
=
0
,
dl
=
variable
.
dependencies
.
length
;
d
<
dl
;
d
++
)
{
for
(
var
d
=
0
,
dl
=
variable
.
dependencies
.
length
;
d
<
dl
;
d
++
)
{
var
depVar
=
variable
.
dependencies
[
d
];
...
...
@@ -255,15 +262,16 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
}
this
.
currentTextureIndex
=
nextTextureIndex
;
};
this
.
getCurrentRenderTarget
=
function
(
variable
)
{
this
.
getCurrentRenderTarget
=
function
(
variable
)
{
return
variable
.
renderTargets
[
this
.
currentTextureIndex
];
};
this
.
getAlternateRenderTarget
=
function
(
variable
)
{
this
.
getAlternateRenderTarget
=
function
(
variable
)
{
return
variable
.
renderTargets
[
this
.
currentTextureIndex
===
0
?
1
:
0
];
...
...
@@ -297,7 +305,7 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
this
.
createShaderMaterial
=
createShaderMaterial
;
this
.
createRenderTarget
=
function
(
sizeXTexture
,
sizeYTexture
,
wrapS
,
wrapT
,
minFilter
,
magFilter
)
{
this
.
createRenderTarget
=
function
(
sizeXTexture
,
sizeYTexture
,
wrapS
,
wrapT
,
minFilter
,
magFilter
)
{
sizeXTexture
=
sizeXTexture
||
sizeX
;
sizeYTexture
=
sizeYTexture
||
sizeY
;
...
...
@@ -323,7 +331,7 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
createTexture
=
function
()
{
this
.
createTexture
=
function
()
{
var
a
=
new
Float32Array
(
sizeX
*
sizeY
*
4
);
var
texture
=
new
DataTexture
(
a
,
sizeX
,
sizeY
,
RGBAFormat
,
FloatType
);
...
...
@@ -333,7 +341,7 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
};
this
.
renderTexture
=
function
(
input
,
output
)
{
this
.
renderTexture
=
function
(
input
,
output
)
{
// Takes a texture, and render out in rendertarget
// input = Texture
...
...
@@ -341,13 +349,13 @@ var GPUComputationRenderer = function( sizeX, sizeY, renderer ) {
passThruUniforms
.
texture
.
value
=
input
;
this
.
doRenderTarget
(
passThruShader
,
output
);
this
.
doRenderTarget
(
passThruShader
,
output
);
passThruUniforms
.
texture
.
value
=
null
;
};
this
.
doRenderTarget
=
function
(
material
,
output
)
{
this
.
doRenderTarget
=
function
(
material
,
output
)
{
var
currentRenderTarget
=
renderer
.
getRenderTarget
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录