Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
imjiangjun
pbrt-v4
提交
e33843b4
P
pbrt-v4
项目概览
imjiangjun
/
pbrt-v4
12 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pbrt-v4
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e33843b4
编写于
5月 12, 2021
作者:
M
Matt Pharr
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
NanoVDBMediumProvider: don't assume density grid bounds == temperature grid bounds
上级
b77e0760
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
10 deletion
+13
-10
src/pbrt/media.cpp
src/pbrt/media.cpp
+1
-7
src/pbrt/media.h
src/pbrt/media.h
+12
-3
未找到文件。
src/pbrt/media.cpp
浏览文件 @
e33843b4
...
...
@@ -364,24 +364,18 @@ NanoVDBMediumProvider *NanoVDBMediumProvider::Create(
ErrorExit
(
loc
,
"Must supply
\"
filename
\"
to
\"
nanovdb
\"
medium."
);
nanovdb
::
GridHandle
<
NanoVDBBuffer
>
densityGrid
;
nanovdb
::
BBox
<
nanovdb
::
Vec3R
>
bbox
;
densityGrid
=
readGrid
<
NanoVDBBuffer
>
(
filename
,
"density"
,
loc
,
alloc
);
if
(
!
densityGrid
)
ErrorExit
(
loc
,
"%s: didn't find
\"
density
\"
grid."
,
filename
);
bbox
=
densityGrid
.
grid
<
float
>
()
->
worldBBox
();
nanovdb
::
GridHandle
<
NanoVDBBuffer
>
temperatureGrid
;
temperatureGrid
=
readGrid
<
NanoVDBBuffer
>
(
filename
,
"temperature"
,
loc
,
alloc
);
Bounds3f
bounds
(
Point3f
(
bbox
.
min
()[
0
],
bbox
.
min
()[
1
],
bbox
.
min
()[
2
]),
Point3f
(
bbox
.
max
()[
0
],
bbox
.
max
()[
1
],
bbox
.
max
()[
2
]));
Float
LeScale
=
parameters
.
GetOneFloat
(
"LeScale"
,
1.
f
);
Float
temperatureCutoff
=
parameters
.
GetOneFloat
(
"temperaturecutoff"
,
0.
f
);
Float
temperatureScale
=
parameters
.
GetOneFloat
(
"temperaturescale"
,
1.
f
);
return
alloc
.
new_object
<
NanoVDBMediumProvider
>
(
bounds
,
std
::
move
(
densityGrid
),
return
alloc
.
new_object
<
NanoVDBMediumProvider
>
(
std
::
move
(
densityGrid
),
std
::
move
(
temperatureGrid
),
LeScale
,
temperatureCutoff
,
temperatureScale
);
}
...
...
src/pbrt/media.h
浏览文件 @
e33843b4
...
...
@@ -596,21 +596,30 @@ class NanoVDBMediumProvider {
bounds
,
LeScale
,
temperatureCutoff
,
temperatureScale
);
}
NanoVDBMediumProvider
(
const
Bounds3f
&
bounds
,
nanovdb
::
GridHandle
<
NanoVDBBuffer
>
dg
,
NanoVDBMediumProvider
(
nanovdb
::
GridHandle
<
NanoVDBBuffer
>
dg
,
nanovdb
::
GridHandle
<
NanoVDBBuffer
>
tg
,
Float
LeScale
,
Float
temperatureCutoff
,
Float
temperatureScale
)
:
bounds
(
bounds
),
densityGrid
(
std
::
move
(
dg
)),
:
densityGrid
(
std
::
move
(
dg
)),
temperatureGrid
(
std
::
move
(
tg
)),
LeScale
(
LeScale
),
temperatureCutoff
(
temperatureCutoff
),
temperatureScale
(
temperatureScale
)
{
densityFloatGrid
=
densityGrid
.
grid
<
float
>
();
nanovdb
::
BBox
<
nanovdb
::
Vec3R
>
bbox
=
densityFloatGrid
->
worldBBox
();
bounds
=
Bounds3f
(
Point3f
(
bbox
.
min
()[
0
],
bbox
.
min
()[
1
],
bbox
.
min
()[
2
]),
Point3f
(
bbox
.
max
()[
0
],
bbox
.
max
()[
1
],
bbox
.
max
()[
2
]));
if
(
temperatureGrid
)
{
temperatureFloatGrid
=
temperatureGrid
.
grid
<
float
>
();
float
minTemperature
,
maxTemperature
;
temperatureFloatGrid
->
tree
().
extrema
(
minTemperature
,
maxTemperature
);
LOG_VERBOSE
(
"Max temperature: %f"
,
maxTemperature
);
nanovdb
::
BBox
<
nanovdb
::
Vec3R
>
bbox
=
temperatureFloatGrid
->
worldBBox
();
bounds
=
Union
(
bounds
,
Bounds3f
(
Point3f
(
bbox
.
min
()[
0
],
bbox
.
min
()[
1
],
bbox
.
min
()[
2
]),
Point3f
(
bbox
.
max
()[
0
],
bbox
.
max
()[
1
],
bbox
.
max
()[
2
])));
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录