提交 b8496e6a 编写于 作者: M Matt Pharr

Merge branch 'master' of github.com:mmp/pbrt-v4

......@@ -24,3 +24,6 @@
[submodule "src/ext/libdeflate"]
path = src/ext/libdeflate
url = https://github.com/mmp/libdeflate.git
[submodule "src/ext/lodepng"]
path = src/ext/lodepng
url = https://github.com/lvandeve/lodepng.git
......@@ -61,9 +61,10 @@ check_ext ("OpenEXR" "openexr/OpenEXR" 5cfb5dab6dfada731586b0281bdb15ee75e26782)
check_ext ("OpenVDB" "openvdb/nanovdb" 1c306bcaf7e9f7d52525bab716202bd4f7fff5d1)
check_ext ("Ptex" "ptex/src" 4cd8e9a6db2b06e478dfbbd8c26eb6df97f84483)
check_ext ("double-conversion" "double-conversion/cmake" cc1f75a114aca8d2af69f73a5a959aecbab0e87a)
check_ext ("filesystem" "filesystem/filesystem" f45da753728cde9b1c380b343e41c8b1ca6498d7)
check_ext ("filesystem" "filesystem/filesystem" c5f9de30142453eb3c6fe991e82dfc2583373116)
check_ext ("libdeflate" "libdeflate/common" 1fd0bea6ca2073c68493632dafc4b1ddda1bcbc3)
check_ext ("stb" "stb/tools" b42009b3b9d4ca35bc703f5310eedc74f584be58)
check_ext ("lodepng" "lodepng/examples" 8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a)
check_ext ("stb" "stb/tools" af1a5bc352164740c1cc1354942b1c6b72eacb8a)
check_ext ("zlib" "zlib/doc" 54d591eabf9fe0e84c725638f8d5d8d202a093fa)
add_compile_definitions ("$<$<CONFIG:DEBUG>:PBRT_DEBUG_BUILD>")
......
Subproject commit f45da753728cde9b1c380b343e41c8b1ca6498d7
Subproject commit c5f9de30142453eb3c6fe991e82dfc2583373116
Subproject commit 8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a
此差异已折叠。
此差异已折叠。
Subproject commit b42009b3b9d4ca35bc703f5310eedc74f584be58
Subproject commit af1a5bc352164740c1cc1354942b1c6b72eacb8a
......@@ -58,10 +58,12 @@ static __forceinline__ __device__ T *getPayload() {
}
template <typename... Args>
__device__ inline void Trace(OptixTraversableHandle traversable, Ray ray, Float tMin,
__device__ inline void Trace(OptixTraversableHandle traversable, Ray ray,
Float tMax, OptixRayFlags flags, Args &&... payload) {
static constexpr float eps = 1e-7f;
optixTrace(traversable, make_float3(ray.o.x, ray.o.y, ray.o.z),
make_float3(ray.d.x, ray.d.y, ray.d.z), tMin, tMax, ray.time,
make_float3(ray.d.x, ray.d.y, ray.d.z), eps, tMax, ray.time,
OptixVisibilityMask(255), flags, 0, /* ray type */
1, /* number of ray types */
0, /* missSBTIndex */
......@@ -110,8 +112,7 @@ extern "C" __global__ void __raygen__findClosest() {
ray.d.y, ray.d.z, tMax);
uint32_t missed = 0;
Trace(params.traversable, ray, 1e-5f /* tMin */, tMax, OPTIX_RAY_FLAG_NONE, p0, p1,
missed);
Trace(params.traversable, ray, tMax, OPTIX_RAY_FLAG_NONE, p0, p1, missed);
if (missed)
EnqueueWorkAfterMiss(r, params.mediumSampleQueue, params.escapedRayQueue);
......@@ -255,8 +256,7 @@ extern "C" __global__ void __raygen__shadow() {
sr.ray.d.x, sr.ray.d.y, sr.ray.d.z);
uint32_t missed = 0;
Trace(params.traversable, sr.ray, 1e-5f /* tMin */, sr.tMax, OPTIX_RAY_FLAG_NONE,
missed);
Trace(params.traversable, sr.ray, sr.tMax, OPTIX_RAY_FLAG_NONE, missed);
RecordShadowRayResult(sr, &params.pixelSampleState, !missed);
}
......@@ -282,8 +282,7 @@ extern "C" __global__ void __raygen__shadow_Tr() {
uint32_t missed = 0;
Trace(params.traversable, ray, 1e-5f /* tMin */, tMax, OPTIX_RAY_FLAG_NONE, p0,
p1, missed);
Trace(params.traversable, ray, tMax, OPTIX_RAY_FLAG_NONE, p0, p1, missed);
return TransmittanceTraceResult{!missed, Point3f(ctx.piHit), ctx.material};
},
......@@ -491,9 +490,9 @@ extern "C" __global__ void __raygen__randomHit() {
PBRT_DBG("Randomhit raygen ray.o %f %f %f ray.d %f %f %f\n", ray.o.x, ray.o.y,
ray.o.z, ray.d.x, ray.d.y, ray.d.z);
while (true) {
Trace(params.traversable, ray, 0.f /* tMin */, 1.f /* tMax */,
OPTIX_RAY_FLAG_NONE, ptr0, ptr1);
int depth = 0;
while (LengthSquared(ray.d) > 0 && ++depth < 100) {
Trace(params.traversable, ray, 1.f /* tMax */, OPTIX_RAY_FLAG_NONE, ptr0, ptr1);
if (payload.intr) {
ray = payload.intr->SpawnRayTo(s.p1);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册