Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
59e8e47d
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,体验更适合开发者的 AI 搜索 >>
提交
59e8e47d
编写于
2月 24, 2021
作者:
S
sunag
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
compile node material per object
上级
cfd07dd0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
11 addition
and
19 deletion
+11
-19
examples/jsm/renderers/webgpu/WebGPUBindings.js
examples/jsm/renderers/webgpu/WebGPUBindings.js
+2
-3
examples/jsm/renderers/webgpu/WebGPURenderPipelines.js
examples/jsm/renderers/webgpu/WebGPURenderPipelines.js
+2
-9
examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js
examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js
+7
-7
未找到文件。
examples/jsm/renderers/webgpu/WebGPUBindings.js
浏览文件 @
59e8e47d
...
...
@@ -24,12 +24,11 @@ class WebGPUBindings {
if
(
data
===
undefined
)
{
const
pipeline
=
this
.
pipelines
.
get
(
object
);
const
material
=
object
.
material
;
const
nodeBuilder
=
this
.
nodes
.
get
(
material
);
// each material defines an array of bindings (ubos, textures, samplers etc.)
const
nodeBuilder
=
this
.
nodes
.
get
(
object
);
const
bindings
=
nodeBuilder
.
getBindings
();
// setup (static) binding layout and (dynamic) binding group
...
...
examples/jsm/renderers/webgpu/WebGPURenderPipelines.js
浏览文件 @
59e8e47d
...
...
@@ -57,7 +57,7 @@ class WebGPURenderPipelines {
// get shader
const
nodeBuilder
=
this
.
nodes
.
get
(
material
);
const
nodeBuilder
=
this
.
nodes
.
get
(
object
);
// shader modules
...
...
@@ -788,22 +788,15 @@ class WebGPURenderPipelines {
function
onMaterialDispose
(
event
)
{
const
properties
=
this
.
properties
;
const
nodes
=
this
.
nodes
;
const
shaderModules
=
this
.
shaderModules
;
const
material
=
event
.
target
;
const
materialProperties
=
properties
.
get
(
material
);
const
nodeBuilder
=
nodes
.
get
(
material
);
material
.
removeEventListener
(
'
dispose
'
,
materialProperties
.
disposeCallback
);
properties
.
remove
(
material
);
nodes
.
remove
(
material
);
shaderModules
.
vertex
.
delete
(
nodeBuilder
.
vertexShader
);
shaderModules
.
fragment
.
delete
(
nodeBuilder
.
fragmentShader
);
// @TODO: still needed remove bindings and pipeline
// @TODO: still needed remove nodes, bindings and pipeline
}
...
...
examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js
浏览文件 @
59e8e47d
...
...
@@ -13,15 +13,15 @@ class WebGPUNodes {
}
get
(
material
)
{
get
(
object
)
{
let
nodeBuilder
=
this
.
builders
.
get
(
material
);
let
nodeBuilder
=
this
.
builders
.
get
(
object
);
if
(
nodeBuilder
===
undefined
)
{
nodeBuilder
=
new
WebGPUNodeBuilder
(
material
,
this
.
renderer
).
build
();
nodeBuilder
=
new
WebGPUNodeBuilder
(
object
.
material
,
this
.
renderer
).
build
();
this
.
builders
.
set
(
material
,
nodeBuilder
);
this
.
builders
.
set
(
object
,
nodeBuilder
);
}
...
...
@@ -29,9 +29,9 @@ class WebGPUNodes {
}
remove
(
material
)
{
remove
(
object
)
{
this
.
builders
.
delete
(
material
);
this
.
builders
.
delete
(
object
);
}
...
...
@@ -45,7 +45,7 @@ class WebGPUNodes {
const
material
=
object
.
material
;
const
nodeBuilder
=
this
.
get
(
material
);
const
nodeBuilder
=
this
.
get
(
object
);
const
nodeFrame
=
this
.
nodeFrame
;
nodeFrame
.
material
=
material
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录