Skip to content

Commit 62e54f8

Browse files
committed
Merge branch 'release-0.12.x'
2 parents aaf2d4f + 5f93a4e commit 62e54f8

File tree

162 files changed

+9137
-4753
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

162 files changed

+9137
-4753
lines changed

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,41 @@
11
Version History
22
---------------
33

4+
### Open VKL 0.12.0
5+
6+
- Added support for temporally varying volumes with associated API changes for
7+
sampling, gradients, and hit iteration. This feature can be used to enable
8+
motion blurred rendering
9+
- Structured regular volumes:
10+
- Support for temporally structured and temporally unstructured (TUV)
11+
input data
12+
- Improved `nominalDeltaT` for interval iteration
13+
- Interval iterator robustness improvements for axis-aligned rays
14+
- Sampling performance improvements
15+
- VDB volumes:
16+
- Multi-attribute support (including three-component float grids)
17+
- Interval iterator robustness improvements for axis-aligned rays
18+
- Performance improvements for scalar sampling
19+
- Now restricting volumes to exactly four levels
20+
- Allowing leaf nodes on the lowest level only
21+
- Unstructured volumes:
22+
- Improved `nominalDeltaT` for interval iteration
23+
- `vdb_util` updates:
24+
- Support for loading multi-attribute .vdb files (`float` and `Vec3s`
25+
grids)
26+
- Fix order of rotation matrix coefficients loaded from .vdb files
27+
- vklExamples additions demonstrating:
28+
- Motion blurred rendering on temporally structured and temporally
29+
unstructured volumes (`structuredRegular` only)
30+
- Support for `vdb` multi-attribute volumes
31+
- Hit iterator time support
32+
- Superbuild updates to:
33+
- Embree 3.12.2
34+
- rkcommon 1.6.0
35+
- ISPC 1.15.0
36+
- OpenVDB 8.0.0
37+
- Minimum rkcommon version is now 1.6.0
38+
439
### Open VKL 0.11.0
540

641
- Introduced API support for multi-attribute volumes, including APIs for

CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Copyright 2019-2020 Intel Corporation
1+
## Copyright 2019-2021 Intel Corporation
22
## SPDX-License-Identifier: Apache-2.0
33

44
## Global CMake options ##
@@ -19,7 +19,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1919

2020
## Establish project ##
2121

22-
project(openvkl VERSION 0.11.0 LANGUAGES C CXX)
22+
project(openvkl VERSION 0.12.0 LANGUAGES C CXX)
2323

2424
## Add openvkl specific macros ##
2525

@@ -47,8 +47,11 @@ openvkl_configure_build_type()
4747
openvkl_configure_global_build_flags()
4848
openvkl_configure_ispc_isa()
4949

50-
set(RKCOMMON_VERSION_REQUIRED 1.4.1)
50+
set(RKCOMMON_VERSION_REQUIRED 1.6.0)
5151
find_package(rkcommon ${RKCOMMON_VERSION_REQUIRED} REQUIRED)
52+
get_target_property(RKCOMMON_INCLUDE_DIRS rkcommon::rkcommon
53+
INTERFACE_INCLUDE_DIRECTORIES)
54+
5255

5356
find_package(embree 3.6.1 REQUIRED)
5457
openvkl_create_embree_target()

README.md

Lines changed: 218 additions & 84 deletions
Large diffs are not rendered by default.

cmake/openvkl_ispc.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
option(OPENVKL_ISPC_FAST_MATH "enable ISPC fast-math optimizations" OFF)
55

66
# ISPC versions to look for, in decending order (newest first)
7-
set(ISPC_VERSION_WORKING "1.14.1")
7+
set(ISPC_VERSION_WORKING "1.15.0" "1.14.1")
88
list(GET ISPC_VERSION_WORKING -1 ISPC_VERSION_REQUIRED)
99

1010
if (NOT ISPC_EXECUTABLE)
@@ -167,7 +167,7 @@ macro (OPENVKL_ISPC_COMPILE)
167167

168168
set(ISPC_TARGET_DIR ${CMAKE_CURRENT_BINARY_DIR}/ispc_${ISPC_TARGETS_STR})
169169

170-
if(ISPC_INCLUDE_DIR)
170+
if (ISPC_INCLUDE_DIR)
171171
string(REPLACE ";" ";-I;" ISPC_INCLUDE_DIR_PARMS "${ISPC_INCLUDE_DIR}")
172172
set(ISPC_INCLUDE_DIR_PARMS "-I" ${ISPC_INCLUDE_DIR_PARMS})
173173
endif()
@@ -254,7 +254,7 @@ macro (OPENVKL_ISPC_COMPILE)
254254
--addressing=${OPENVKL_ISPC_ADDRESSING}
255255
${ISPC_OPT_FLAGS}
256256
--target=${ISPC_TARGET_ARGS}
257-
--woff
257+
--wno-perf
258258
${ISPC_ADDITIONAL_ARGS}
259259
-h ${ISPC_TARGET_DIR}/${fname}_ispc.h
260260
-MMM ${outdir}/${fname}.dev.idep

cmake/openvkl_macros.cmake

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Copyright 2019-2020 Intel Corporation
1+
## Copyright 2019-2021 Intel Corporation
22
## SPDX-License-Identifier: Apache-2.0
33

44
macro(openvkl_add_library_ispc name type)
@@ -207,10 +207,15 @@ endmacro()
207207
# and we also define constants that describe the topology
208208
# in terms of node resolution per level.
209209
function(openvkl_vdb_generate_topology)
210+
set(VKL_VDB_NUM_LEVELS "4")
211+
212+
set(VKL_VDB_LOG_RESOLUTION "")
213+
list(APPEND VKL_VDB_LOG_RESOLUTION "${VKL_VDB_LOG_RESOLUTION_3}")
214+
list(APPEND VKL_VDB_LOG_RESOLUTION "${VKL_VDB_LOG_RESOLUTION_2}")
215+
list(APPEND VKL_VDB_LOG_RESOLUTION "${VKL_VDB_LOG_RESOLUTION_1}")
216+
list(APPEND VKL_VDB_LOG_RESOLUTION "${VKL_VDB_LOG_RESOLUTION_0}")
210217

211-
list(LENGTH VKL_VDB_LOG_RESOLUTION VKL_VDB_NUM_LEVELS)
212218
math(EXPR VKL_VDB_LEAF_LEVEL "${VKL_VDB_NUM_LEVELS}-1")
213-
list(REVERSE VKL_VDB_LOG_RESOLUTION) # Define from leaf level up.
214219
set(VKL_VDB_TOTAL_LOG_RES 0)
215220

216221
foreach(I RANGE ${VKL_VDB_LEAF_LEVEL})
@@ -232,22 +237,35 @@ function(openvkl_vdb_generate_topology)
232237
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/include/${PROJECT_NAME}/vdb_topology.h.in
233238
include/${PROJECT_NAME}/vdb/topology${VKL_VDB_POSTFIX}.h
234239
)
235-
configure_file(
236-
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/drivers/ispc/volume/vdb/VdbSampleConstantLeaf.ih.in
237-
include/${PROJECT_NAME}_vdb/VdbSampleConstantLeaf_${VKL_VDB_LEVEL}.ih
238-
)
239240

240241
configure_file(
241242
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/drivers/ispc/volume/vdb/VdbSamplerDispatchInner.ih.in
242243
include/${PROJECT_NAME}_vdb/VdbSamplerDispatchInner${VKL_VDB_POSTFIX}.ih
243244
)
244245

245-
foreach(VKL_VDB_UNIVARY in "uniform" "varying")
246-
configure_file(
247-
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/drivers/ispc/volume/vdb/VdbSampleInner.ih.in
248-
include/${PROJECT_NAME}_vdb/VdbSampleInner_${VKL_VDB_UNIVARY}_${VKL_VDB_LEVEL}.ih
249-
)
250-
endforeach()
246+
# Generate uniform, varying, and univary traversal.
247+
# a) We know all queries are in the same leaf node. Fully uniform traversal.
248+
set(VKL_VDB_UNIVARY_IN "uniform")
249+
set(VKL_VDB_UNIVARY_OUT "uniform")
250+
configure_file(
251+
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/drivers/ispc/volume/vdb/VdbSampleInner.ih.in
252+
include/${PROJECT_NAME}_vdb/VdbSampleInner_${VKL_VDB_UNIVARY_IN}_${VKL_VDB_UNIVARY_OUT}_${VKL_VDB_LEVEL}.ih
253+
)
254+
# b) All lanes are not in the same subtree.
255+
set(VKL_VDB_UNIVARY_IN "varying")
256+
set(VKL_VDB_UNIVARY_OUT "varying")
257+
configure_file(
258+
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/drivers/ispc/volume/vdb/VdbSampleInner.ih.in
259+
include/${PROJECT_NAME}_vdb/VdbSampleInner_${VKL_VDB_UNIVARY_IN}_${VKL_VDB_UNIVARY_OUT}_${VKL_VDB_LEVEL}.ih
260+
)
261+
# c) Lanes are not in the same leaf, but currently in the same subtree.
262+
# May degenerate to varying.
263+
set(VKL_VDB_UNIVARY_IN "uniform")
264+
set(VKL_VDB_UNIVARY_OUT "varying")
265+
configure_file(
266+
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/drivers/ispc/volume/vdb/VdbSampleInner.ih.in
267+
include/${PROJECT_NAME}_vdb/VdbSampleInner_${VKL_VDB_UNIVARY_IN}_${VKL_VDB_UNIVARY_OUT}_${VKL_VDB_LEVEL}.ih
268+
)
251269

252270
configure_file(
253271
${PROJECT_SOURCE_DIR}/${PROJECT_NAME}/drivers/ispc/volume/vdb/VdbQueryVoxel.ih.in

doc/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ SHELL := /bin/bash
22

33
webpages := $(addprefix www/, $(addsuffix .html, index documentation examples downloads related_projects legal))
44
process_version := $(addprefix tmp/, $(addsuffix .md, readme_head))
5-
images_png := $(addprefix images/, $(addsuffix .png, structured_spherical_coords vdb_structure))
5+
images_png := $(addprefix images/, $(addsuffix .png, structured_spherical_coords vdb_structure vklExamples))
66

77
webimages := $(addprefix www/, $(images_png))
88

@@ -68,7 +68,7 @@ tmp/api_html.md: api.md images.md tmp/links.md
6868
6969
www/index.html: teaser.html overview.md changelog.md support.md
7070
www/documentation.html: tmp/api_html.md
71-
www/examples.html: examples.md
71+
www/examples.html: examples.md images.md
7272
www/downloads.html: compilation.md
7373
www/related_projects.html: related_projects.md
7474
www/legal.html: legal.md

0 commit comments

Comments
 (0)