mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
extra/vtk to 9.3.0-7
This commit is contained in:
parent
f86e4a967e
commit
36cbfb4fd3
3 changed files with 421 additions and 4 deletions
|
@ -1,7 +1,7 @@
|
||||||
pkgbase = vtk
|
pkgbase = vtk
|
||||||
pkgdesc = Software system for 3D computer graphics, image processing, and visualization
|
pkgdesc = Software system for 3D computer graphics, image processing, and visualization
|
||||||
pkgver = 9.3.0
|
pkgver = 9.3.0
|
||||||
pkgrel = 6
|
pkgrel = 7
|
||||||
url = https://www.vtk.org/
|
url = https://www.vtk.org/
|
||||||
arch = x86_64
|
arch = x86_64
|
||||||
license = BSD
|
license = BSD
|
||||||
|
@ -108,8 +108,10 @@ pkgbase = vtk
|
||||||
source = https://www.vtk.org//files/release/9.3/VTK-9.3.0.tar.gz
|
source = https://www.vtk.org//files/release/9.3/VTK-9.3.0.tar.gz
|
||||||
source = vtk-occt.patch
|
source = vtk-occt.patch
|
||||||
source = https://gitlab.kitware.com/vtk/vtk/-/commit/5055371e.patch
|
source = https://gitlab.kitware.com/vtk/vtk/-/commit/5055371e.patch
|
||||||
|
source = ospray-3.patch
|
||||||
sha256sums = fdc7b9295225b34e4fdddc49cd06e66e94260cb00efee456e0f66568c9681be9
|
sha256sums = fdc7b9295225b34e4fdddc49cd06e66e94260cb00efee456e0f66568c9681be9
|
||||||
sha256sums = df958eabc7dc4f5b33383ce0fb0f90a3ba202c1c2a24d3b5b9e7cfb1fb38b011
|
sha256sums = df958eabc7dc4f5b33383ce0fb0f90a3ba202c1c2a24d3b5b9e7cfb1fb38b011
|
||||||
sha256sums = 54861a8667c505fedb96b49283521ce62af62148b629e953bbd065f831f02d04
|
sha256sums = 54861a8667c505fedb96b49283521ce62af62148b629e953bbd065f831f02d04
|
||||||
|
sha256sums = faf3fd2eea2f73a07f5dcbd67920161a07ae554e008ad1e4099153fec2882278
|
||||||
|
|
||||||
pkgname = vtk
|
pkgname = vtk
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
pkgname=vtk
|
pkgname=vtk
|
||||||
# May need bootstrapping on upgrades due to circular vtk <-> opencascade dependency
|
# May need bootstrapping on upgrades due to circular vtk <-> opencascade dependency
|
||||||
pkgver=9.3.0
|
pkgver=9.3.0
|
||||||
pkgrel=6
|
pkgrel=7
|
||||||
pkgdesc="Software system for 3D computer graphics, image processing, and visualization"
|
pkgdesc="Software system for 3D computer graphics, image processing, and visualization"
|
||||||
arch=(x86_64)
|
arch=(x86_64)
|
||||||
url="https://www.vtk.org/"
|
url="https://www.vtk.org/"
|
||||||
|
@ -126,10 +126,12 @@ optdepends=(
|
||||||
options=(staticlibs)
|
options=(staticlibs)
|
||||||
source=(${url}/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz
|
source=(${url}/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz
|
||||||
vtk-occt.patch
|
vtk-occt.patch
|
||||||
https://gitlab.kitware.com/vtk/vtk/-/commit/5055371e.patch)
|
https://gitlab.kitware.com/vtk/vtk/-/commit/5055371e.patch
|
||||||
|
ospray-3.patch)
|
||||||
sha256sums=('fdc7b9295225b34e4fdddc49cd06e66e94260cb00efee456e0f66568c9681be9'
|
sha256sums=('fdc7b9295225b34e4fdddc49cd06e66e94260cb00efee456e0f66568c9681be9'
|
||||||
'df958eabc7dc4f5b33383ce0fb0f90a3ba202c1c2a24d3b5b9e7cfb1fb38b011'
|
'df958eabc7dc4f5b33383ce0fb0f90a3ba202c1c2a24d3b5b9e7cfb1fb38b011'
|
||||||
'54861a8667c505fedb96b49283521ce62af62148b629e953bbd065f831f02d04')
|
'54861a8667c505fedb96b49283521ce62af62148b629e953bbd065f831f02d04'
|
||||||
|
'faf3fd2eea2f73a07f5dcbd67920161a07ae554e008ad1e4099153fec2882278')
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd ${pkgname^^}-${pkgver}
|
cd ${pkgname^^}-${pkgver}
|
||||||
|
@ -137,6 +139,7 @@ prepare() {
|
||||||
|
|
||||||
patch -Np1 -i "$srcdir"/vtk-occt.patch
|
patch -Np1 -i "$srcdir"/vtk-occt.patch
|
||||||
patch -Np1 -i ../5055371e.patch # Fix link to PDAL 2.6
|
patch -Np1 -i ../5055371e.patch # Fix link to PDAL 2.6
|
||||||
|
patch -Np1 -i ../ospray-3.patch # Fix build with ospray 3.0
|
||||||
}
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
|
|
412
extra/vtk/ospray-3.patch
Normal file
412
extra/vtk/ospray-3.patch
Normal file
|
@ -0,0 +1,412 @@
|
||||||
|
From 6fa86e668c67015e961e2c4667f2fbc719d6188b Mon Sep 17 00:00:00 2001
|
||||||
|
From: "David E. DeMarle" <david.demarle@intel.com>
|
||||||
|
Date: Tue, 19 Sep 2023 21:27:45 -0400
|
||||||
|
Subject: [PATCH 1/2] bump VTK to OSPRay 3 API
|
||||||
|
|
||||||
|
Change CMake script to look for 3.
|
||||||
|
Stop using previously deprecated OSPRay APIs, they are removed in 3.0.
|
||||||
|
Use new parameter signatures including:
|
||||||
|
uint for enums
|
||||||
|
box1f instead of vec2f for ranges
|
||||||
|
"valueRanges" TransferFunction parameter is now "value".
|
||||||
|
linear2d for texture transforms
|
||||||
|
ospNewMaterial no longer accepts renderertype first argument
|
||||||
|
Implicit isocontours now take their appearance settings from
|
||||||
|
GeometricModel instead of VolumetricModel.
|
||||||
|
---
|
||||||
|
Rendering/RayTracing/CMakeLists.txt | 2 +-
|
||||||
|
Rendering/RayTracing/RTWrapper/Backend.h | 5 ++-
|
||||||
|
.../RTWrapper/OSPRay/OSPRayBackend.h | 25 ++++++++++-----
|
||||||
|
Rendering/RayTracing/RTWrapper/RTWrapper.h | 3 ++
|
||||||
|
.../RayTracing/vtkOSPRayMaterialHelpers.cxx | 9 +++---
|
||||||
|
.../vtkOSPRayMoleculeMapperNode.cxx | 8 ++---
|
||||||
|
.../vtkOSPRayPointGaussianMapperNode.cxx | 2 +-
|
||||||
|
.../vtkOSPRayPolyDataMapperNode.cxx | 32 +++++++++----------
|
||||||
|
.../vtkOSPRayUnstructuredVolumeMapperNode.cxx | 2 +-
|
||||||
|
.../RayTracing/vtkOSPRayVolumeMapperNode.cxx | 24 ++++++++++++--
|
||||||
|
.../RayTracing/vtkOSPRayVolumeMapperNode.h | 1 +
|
||||||
|
11 files changed, 73 insertions(+), 40 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Rendering/RayTracing/CMakeLists.txt b/Rendering/RayTracing/CMakeLists.txt
|
||||||
|
index 9d5ad4dd828..baa3078065e 100644
|
||||||
|
--- a/Rendering/RayTracing/CMakeLists.txt
|
||||||
|
+++ b/Rendering/RayTracing/CMakeLists.txt
|
||||||
|
@@ -58,7 +58,7 @@ vtk_module_add_module(VTK::RenderingRayTracing
|
||||||
|
if (VTK_ENABLE_OSPRAY)
|
||||||
|
vtk_module_find_package(PRIVATE_IF_SHARED
|
||||||
|
PACKAGE ospray
|
||||||
|
- VERSION 2.1)
|
||||||
|
+ VERSION 3.0)
|
||||||
|
|
||||||
|
vtk_module_link(VTK::RenderingRayTracing
|
||||||
|
PRIVATE
|
||||||
|
diff --git a/Rendering/RayTracing/RTWrapper/Backend.h b/Rendering/RayTracing/RTWrapper/Backend.h
|
||||||
|
index e35e789f345..ba13a89cb7c 100644
|
||||||
|
--- a/Rendering/RayTracing/RTWrapper/Backend.h
|
||||||
|
+++ b/Rendering/RayTracing/RTWrapper/Backend.h
|
||||||
|
@@ -30,7 +30,7 @@ VTK_ABI_NAMESPACE_BEGIN
|
||||||
|
virtual RTWGroup NewGroup() = 0;
|
||||||
|
virtual RTWTexture NewTexture(const char* type) = 0;
|
||||||
|
virtual RTWLight NewLight(const char *light_type) = 0;
|
||||||
|
- virtual RTWMaterial NewMaterial(const char *renderer_type, const char *material_type) = 0;
|
||||||
|
+ virtual RTWMaterial NewMaterial(const char *material_type) = 0;
|
||||||
|
virtual RTWVolume NewVolume(const char *type) = 0;
|
||||||
|
virtual RTWVolumetricModel NewVolumetricModel(RTWVolume volume) = 0;
|
||||||
|
virtual RTWTransferFunction NewTransferFunction(const char *type) = 0;
|
||||||
|
@@ -49,13 +49,16 @@ VTK_ABI_NAMESPACE_BEGIN
|
||||||
|
virtual void SetObjectAsData(RTWObject target, const char *id, RTWDataType type, RTWObject obj) = 0;
|
||||||
|
virtual void SetParam(RTWObject, const char *id, RTWDataType type, const void* mem) = 0;
|
||||||
|
virtual void SetBool(RTWObject, const char *id, bool x) = 0;
|
||||||
|
+ virtual void SetBox1f(RTWObject, const char *id, float x, float y) = 0;
|
||||||
|
virtual void SetInt(RTWObject, const char *id, int32_t x) = 0;
|
||||||
|
+ virtual void SetUInt(RTWObject, const char *id, uint32_t x) = 0;
|
||||||
|
virtual void SetVec2i(RTWObject, const char *id, int32_t x, int32_t y) = 0;
|
||||||
|
virtual void SetFloat(RTWObject, const char *id, float x) = 0;
|
||||||
|
virtual void SetVec2f(RTWObject, const char *id, float x, float y) = 0;
|
||||||
|
virtual void SetVec3i(RTWObject, const char *id, int x, int y, int z) = 0;
|
||||||
|
virtual void SetVec3f(RTWObject, const char *id, float x, float y, float z) = 0;
|
||||||
|
virtual void SetVec4f(RTWObject, const char *id, float x, float y, float z, float w) = 0;
|
||||||
|
+ virtual void SetLinear2f(RTWObject, const char *id, float x, float y, float z, float w) = 0;
|
||||||
|
|
||||||
|
virtual void RemoveParam(RTWObject, const char *id) = 0;
|
||||||
|
|
||||||
|
diff --git a/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h b/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h
|
||||||
|
index 4ee1be32282..f3fe5209b7b 100644
|
||||||
|
--- a/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h
|
||||||
|
+++ b/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h
|
||||||
|
@@ -84,15 +84,9 @@ VTK_ABI_NAMESPACE_BEGIN
|
||||||
|
{
|
||||||
|
std::runtime_error("OSPRay device could not be fetched!");
|
||||||
|
}
|
||||||
|
-#if OSPRAY_VERSION_MINOR > 1
|
||||||
|
ospDeviceSetErrorCallback(device, [](void *, OSPError, const char *errorDetails) {
|
||||||
|
std::cerr << "OSPRay ERROR: " << errorDetails << std::endl;
|
||||||
|
}, nullptr);
|
||||||
|
-#else
|
||||||
|
- ospDeviceSetErrorFunc(device, [](OSPError, const char *errorDetails) {
|
||||||
|
- std::cerr << "OSPRay ERROR: " << errorDetails << std::endl;
|
||||||
|
- });
|
||||||
|
-#endif
|
||||||
|
once = true;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
@@ -199,9 +193,9 @@ VTK_ABI_NAMESPACE_BEGIN
|
||||||
|
return reinterpret_cast<RTWLight>(ospNewLight(light_type));
|
||||||
|
}
|
||||||
|
|
||||||
|
- RTWMaterial NewMaterial(const char *renderer_type, const char *material_type) override
|
||||||
|
+ RTWMaterial NewMaterial(const char *material_type) override
|
||||||
|
{
|
||||||
|
- return reinterpret_cast<RTWMaterial>(ospNewMaterial(renderer_type, material_type));
|
||||||
|
+ return reinterpret_cast<RTWMaterial>(ospNewMaterial(material_type));
|
||||||
|
}
|
||||||
|
|
||||||
|
RTWVolume NewVolume(const char *type) override
|
||||||
|
@@ -280,6 +274,11 @@ VTK_ABI_NAMESPACE_BEGIN
|
||||||
|
ospSetInt(reinterpret_cast<OSPObject>(object), id, x);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ void SetUInt(RTWObject object, const char *id, uint32_t x) override
|
||||||
|
+ {
|
||||||
|
+ ospSetUInt(reinterpret_cast<OSPObject>(object), id, x);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
void SetBool(RTWObject object, const char *id, bool x) override
|
||||||
|
{
|
||||||
|
ospSetBool(reinterpret_cast<OSPObject>(object), id, x);
|
||||||
|
@@ -290,6 +289,16 @@ VTK_ABI_NAMESPACE_BEGIN
|
||||||
|
ospSetFloat(reinterpret_cast<OSPObject>(object), id, x);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ void SetLinear2f(RTWObject object, const char *id, float x, float y, float z, float w) override
|
||||||
|
+ {
|
||||||
|
+ ospSetLinear2f(reinterpret_cast<OSPObject>(object), id, x, y, z, w);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ void SetBox1f(RTWObject object, const char *id, float x, float y) override
|
||||||
|
+ {
|
||||||
|
+ ospSetBox1f(reinterpret_cast<OSPObject>(object), id, x, y);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
void SetVec2f(RTWObject object, const char *id, float x, float y) override
|
||||||
|
{
|
||||||
|
ospSetVec2f(reinterpret_cast<OSPObject>(object), id, x, y);
|
||||||
|
diff --git a/Rendering/RayTracing/RTWrapper/RTWrapper.h b/Rendering/RayTracing/RTWrapper/RTWrapper.h
|
||||||
|
index 1bbdb893a42..ebbe18aef99 100644
|
||||||
|
--- a/Rendering/RayTracing/RTWrapper/RTWrapper.h
|
||||||
|
+++ b/Rendering/RayTracing/RTWrapper/RTWrapper.h
|
||||||
|
@@ -140,7 +140,10 @@ std::set<RTWBackendType> rtwGetAvailableBackends();
|
||||||
|
|
||||||
|
#define ospSetFloat backend->SetFloat
|
||||||
|
#define ospSetBool backend->SetBool
|
||||||
|
+#define ospSetBox1f backend->SetBox1f
|
||||||
|
#define ospSetInt backend->SetInt
|
||||||
|
+#define ospSetLinear2f backend->SetLinear2f
|
||||||
|
+#define ospSetUInt backend->SetUInt
|
||||||
|
#define ospSetVec2i backend->SetVec2i
|
||||||
|
#define ospSetVec3i backend->SetVec3i
|
||||||
|
#define ospSetVec2f backend->SetVec2f
|
||||||
|
diff --git a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx
|
||||||
|
index 12fb6aaf98d..e21a761253b 100644
|
||||||
|
--- a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx
|
||||||
|
+++ b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx
|
||||||
|
@@ -70,10 +70,10 @@ OSPTexture NewTexture2D(RTW::Backend* backend, const osp::vec2i& size, const OSP
|
||||||
|
ospSetObject(texture, "data", data_handle);
|
||||||
|
ospRelease(data_handle);
|
||||||
|
|
||||||
|
- ospSetInt(texture, "format", static_cast<int>(type));
|
||||||
|
+ ospSetUInt(texture, "format", type);
|
||||||
|
if (flags & OSP_TEXTURE_FILTER_NEAREST)
|
||||||
|
{
|
||||||
|
- ospSetInt(texture, "filter", OSP_TEXTURE_FILTER_NEAREST);
|
||||||
|
+ ospSetUInt(texture, "filter", OSP_TEXTURE_FILTER_NEAREST);
|
||||||
|
}
|
||||||
|
ospCommit(texture);
|
||||||
|
|
||||||
|
@@ -362,14 +362,13 @@ OSPMaterial NewMaterial(vtkOSPRayRendererNode* orn, OSPRenderer oRenderer, std::
|
||||||
|
return result;
|
||||||
|
|
||||||
|
(void)oRenderer;
|
||||||
|
- const std::string rendererType = vtkOSPRayRendererNode::GetRendererType(orn->GetRenderer());
|
||||||
|
- result = ospNewMaterial(rendererType.c_str(), ospMatName.c_str());
|
||||||
|
+ result = ospNewMaterial(ospMatName.c_str());
|
||||||
|
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
vtkGenericWarningMacro(
|
||||||
|
"OSPRay failed to create material: " << ospMatName << ". Trying obj instead.");
|
||||||
|
- result = ospNewMaterial(rendererType.c_str(), "obj");
|
||||||
|
+ result = ospNewMaterial("obj");
|
||||||
|
}
|
||||||
|
|
||||||
|
ospCommit(result);
|
||||||
|
diff --git a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx
|
||||||
|
index 5c0f36de21b..3ae794ed0f0 100644
|
||||||
|
--- a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx
|
||||||
|
+++ b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx
|
||||||
|
@@ -292,8 +292,8 @@ void vtkOSPRayMoleculeMapperNode::Render(bool prepass)
|
||||||
|
ospRelease(oMaterial);
|
||||||
|
}
|
||||||
|
|
||||||
|
- ospSetInt(bonds, "type", OSP_ROUND);
|
||||||
|
- ospSetInt(bonds, "basis", OSP_BEZIER);
|
||||||
|
+ ospSetUInt(bonds, "type", OSP_ROUND);
|
||||||
|
+ ospSetUInt(bonds, "basis", OSP_BEZIER);
|
||||||
|
|
||||||
|
this->GeometricModels.emplace_back(bondsModel);
|
||||||
|
ospCommit(bonds);
|
||||||
|
@@ -394,8 +394,8 @@ void vtkOSPRayMoleculeMapperNode::Render(bool prepass)
|
||||||
|
ocolor[3] = opacity;
|
||||||
|
ospSetVec3f(latticeModel, "color", ocolor[0], ocolor[1], ocolor[2]);
|
||||||
|
|
||||||
|
- ospSetInt(lattice, "type", OSP_ROUND);
|
||||||
|
- ospSetInt(lattice, "basis", OSP_LINEAR);
|
||||||
|
+ ospSetUInt(lattice, "type", OSP_ROUND);
|
||||||
|
+ ospSetUInt(lattice, "basis", OSP_LINEAR);
|
||||||
|
|
||||||
|
this->GeometricModels.emplace_back(latticeModel);
|
||||||
|
ospCommit(lattice);
|
||||||
|
diff --git a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx
|
||||||
|
index f294bf4b2f8..be040f627c5 100644
|
||||||
|
--- a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx
|
||||||
|
+++ b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx
|
||||||
|
@@ -280,7 +280,7 @@ OSPVolumetricModel RenderAsParticles(osp::vec3f* vertices, std::vector<unsigned
|
||||||
|
auto oTF = ospNewTransferFunction("piecewiseLinear");
|
||||||
|
ospSetObject(oTF, "color", _Colors);
|
||||||
|
ospSetObject(oTF, "opacity", _AlphaData);
|
||||||
|
- ospSetVec2f(oTF, "valueRange", static_cast<float>(wRange[0]), static_cast<float>(wRange[1]));
|
||||||
|
+ ospSetBox1f(oTF, "value", static_cast<float>(wRange[0]), static_cast<float>(wRange[1]));
|
||||||
|
ospCommit(oTF);
|
||||||
|
ospRelease(_Colors);
|
||||||
|
ospRelease(_AlphaData);
|
||||||
|
diff --git a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx
|
||||||
|
index 8031b169f3f..3f5fb31fd17 100644
|
||||||
|
--- a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx
|
||||||
|
+++ b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx
|
||||||
|
@@ -304,8 +304,8 @@ OSPGeometricModel RenderAsCylinders(std::vector<osp::vec3f>& vertices,
|
||||||
|
_mdata = ospNewCopyData1D(mdata.data(), OSP_VEC4F, mdata.size());
|
||||||
|
ospCommit(_mdata);
|
||||||
|
ospSetObject(ospMesh, "vertex.position_radius", _mdata);
|
||||||
|
- ospSetInt(ospMesh, "type", OSP_ROUND);
|
||||||
|
- ospSetInt(ospMesh, "basis", OSP_BEZIER);
|
||||||
|
+ ospSetUInt(ospMesh, "type", OSP_ROUND);
|
||||||
|
+ ospSetUInt(ospMesh, "basis", OSP_BEZIER);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@@ -319,8 +319,8 @@ OSPGeometricModel RenderAsCylinders(std::vector<osp::vec3f>& vertices,
|
||||||
|
ospCommit(_mdata);
|
||||||
|
ospSetObject(ospMesh, "vertex.position", _mdata);
|
||||||
|
ospSetFloat(ospMesh, "radius", lineWidth);
|
||||||
|
- ospSetInt(ospMesh, "type", OSP_ROUND);
|
||||||
|
- ospSetInt(ospMesh, "basis", OSP_LINEAR);
|
||||||
|
+ ospSetUInt(ospMesh, "type", OSP_ROUND);
|
||||||
|
+ ospSetUInt(ospMesh, "basis", OSP_LINEAR);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<unsigned int> indices;
|
||||||
|
@@ -530,13 +530,13 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector<unsigned int>&
|
||||||
|
if (interpolationType == VTK_PBR)
|
||||||
|
{
|
||||||
|
ospSetObject(actorMaterial, "map_normal", t2d);
|
||||||
|
- ospSetVec4f(actorMaterial, "map_normal.transform", textureTransform.x, textureTransform.y,
|
||||||
|
- textureTransform.z, textureTransform.w);
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_normal.transform", textureTransform.x,
|
||||||
|
+ textureTransform.y, textureTransform.z, textureTransform.w);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ospSetObject(actorMaterial, "map_Bump", t2d);
|
||||||
|
- ospSetVec4f(actorMaterial, "map_Bump.transform", textureTransform.x, textureTransform.y,
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_Bump.transform", textureTransform.x, textureTransform.y,
|
||||||
|
textureTransform.z, textureTransform.w);
|
||||||
|
}
|
||||||
|
ospCommit(actorMaterial);
|
||||||
|
@@ -562,13 +562,13 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector<unsigned int>&
|
||||||
|
|
||||||
|
OSPTexture t2dR = vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vRoughnessTextureMap);
|
||||||
|
ospSetObject(actorMaterial, "map_roughness", t2dR);
|
||||||
|
- ospSetVec4f(actorMaterial, "map_roughness.transform", textureTransform.x,
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_roughness.transform", textureTransform.x,
|
||||||
|
textureTransform.y, textureTransform.z, textureTransform.w);
|
||||||
|
|
||||||
|
OSPTexture t2dM = vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vMetallicTextureMap);
|
||||||
|
ospSetObject(actorMaterial, "map_metallic", t2dM);
|
||||||
|
- ospSetVec4f(actorMaterial, "map_metallic.transform", textureTransform.x, textureTransform.y,
|
||||||
|
- textureTransform.z, textureTransform.w);
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_metallic.transform", textureTransform.x,
|
||||||
|
+ textureTransform.y, textureTransform.z, textureTransform.w);
|
||||||
|
|
||||||
|
ospCommit(actorMaterial);
|
||||||
|
ospRelease(t2dR);
|
||||||
|
@@ -593,14 +593,14 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector<unsigned int>&
|
||||||
|
OSPTexture t2dA =
|
||||||
|
vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vAnisotropyValueTextureMap);
|
||||||
|
ospSetObject(actorMaterial, "map_anisotropy", t2dA);
|
||||||
|
- ospSetVec4f(actorMaterial, "map_anisotropy.transform", textureTransform.x,
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_anisotropy.transform", textureTransform.x,
|
||||||
|
textureTransform.y, textureTransform.z, textureTransform.w);
|
||||||
|
|
||||||
|
OSPTexture t2dR =
|
||||||
|
vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vAnisotropyRotationTextureMap);
|
||||||
|
ospSetObject(actorMaterial, "map_rotation", t2dR);
|
||||||
|
- ospSetVec4f(actorMaterial, "map_rotation.transform", textureTransform.x, textureTransform.y,
|
||||||
|
- textureTransform.z, textureTransform.w);
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_rotation.transform", textureTransform.x,
|
||||||
|
+ textureTransform.y, textureTransform.z, textureTransform.w);
|
||||||
|
ospCommit(actorMaterial);
|
||||||
|
ospRelease(t2dA);
|
||||||
|
ospRelease(t2dR);
|
||||||
|
@@ -610,7 +610,7 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector<unsigned int>&
|
||||||
|
{
|
||||||
|
OSPTexture t2d = vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vCoatNormalTextureMap);
|
||||||
|
ospSetObject(actorMaterial, "map_coatNormal", t2d);
|
||||||
|
- ospSetVec4f(actorMaterial, "map_coatNormal.transform", textureTransform.x,
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_coatNormal.transform", textureTransform.x,
|
||||||
|
textureTransform.y, textureTransform.z, textureTransform.w);
|
||||||
|
ospCommit(actorMaterial);
|
||||||
|
ospRelease(t2d);
|
||||||
|
@@ -624,13 +624,13 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector<unsigned int>&
|
||||||
|
if (interpolationType == VTK_PBR)
|
||||||
|
{
|
||||||
|
ospSetObject(actorMaterial, "map_baseColor", ((OSPTexture)(t2d)));
|
||||||
|
- ospSetVec4f(actorMaterial, "map_baseColor.transform", textureTransform.x,
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_baseColor.transform", textureTransform.x,
|
||||||
|
textureTransform.y, textureTransform.z, textureTransform.w);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ospSetObject(actorMaterial, "map_kd", ((OSPTexture)(t2d)));
|
||||||
|
- ospSetVec4f(actorMaterial, "map_kd.transform", textureTransform.x, textureTransform.y,
|
||||||
|
+ ospSetLinear2f(actorMaterial, "map_kd.transform", textureTransform.x, textureTransform.y,
|
||||||
|
textureTransform.z, textureTransform.w);
|
||||||
|
}
|
||||||
|
ospCommit(actorMaterial);
|
||||||
|
diff --git a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx
|
||||||
|
index 2662d7ac045..c764314c061 100644
|
||||||
|
--- a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx
|
||||||
|
+++ b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx
|
||||||
|
@@ -355,7 +355,7 @@ void vtkOSPRayUnstructuredVolumeMapperNode::Render(bool prepass)
|
||||||
|
OSPData tfAlphaData = ospNewCopyData1D(&tfOVals[0], OSP_FLOAT, NumColors);
|
||||||
|
ospCommit(tfAlphaData);
|
||||||
|
ospSetObject(oTF, "opacity", tfAlphaData);
|
||||||
|
- ospSetVec2f(oTF, "valueRange", range[0], range[1]);
|
||||||
|
+ ospSetBox1f(oTF, "value", (float)range[0], (float)range[1]);
|
||||||
|
ospCommit(oTF);
|
||||||
|
|
||||||
|
ospRelease(colorData);
|
||||||
|
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx
|
||||||
|
index 564a8be1eb4..dc65c5ac9a3 100644
|
||||||
|
--- a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx
|
||||||
|
+++ b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx
|
||||||
|
@@ -322,7 +322,7 @@ void vtkOSPRayVolumeMapperNode::Render(bool prepass)
|
||||||
|
ospCommit(isosurfaces);
|
||||||
|
|
||||||
|
ospSetObject(OSPRayIsosurface, "isovalue", isosurfaces);
|
||||||
|
- ospSetObject(OSPRayIsosurface, "volume", this->OSPRayVolumeModel);
|
||||||
|
+ ospSetObject(OSPRayIsosurface, "volume", this->OSPRayVolume);
|
||||||
|
ospCommit(OSPRayIsosurface);
|
||||||
|
ospRelease(isosurfaces);
|
||||||
|
|
||||||
|
@@ -330,12 +330,15 @@ void vtkOSPRayVolumeMapperNode::Render(bool prepass)
|
||||||
|
OSPInstance instance = ospNewInstance(group);
|
||||||
|
|
||||||
|
OSPGeometricModel OSPRayGeometricModel = ospNewGeometricModel(OSPRayIsosurface);
|
||||||
|
-
|
||||||
|
+ OSPData ospIsoColors = ospNewCopyData1D(this->IsoColors.data(), OSP_VEC4F, nbContours);
|
||||||
|
+ ospCommit(ospIsoColors);
|
||||||
|
+ ospSetObject(OSPRayGeometricModel, "color", ospIsoColors);
|
||||||
|
OSPMaterial material =
|
||||||
|
vtkOSPRayMaterialHelpers::NewMaterial(orn, orn->GetORenderer(), "obj");
|
||||||
|
ospCommit(material);
|
||||||
|
ospSetObjectAsData(OSPRayGeometricModel, "material", OSP_MATERIAL, material);
|
||||||
|
ospCommit(OSPRayGeometricModel);
|
||||||
|
+ ospRelease(ospIsoColors);
|
||||||
|
ospRelease(material);
|
||||||
|
ospRelease(OSPRayIsosurface);
|
||||||
|
|
||||||
|
@@ -417,7 +420,7 @@ void vtkOSPRayVolumeMapperNode::UpdateTransferFunction(
|
||||||
|
ospCommit(colorData);
|
||||||
|
ospSetObject(this->TransferFunction, "color", colorData);
|
||||||
|
|
||||||
|
- ospSetVec2f(this->TransferFunction, "valueRange", tfRange.x, tfRange.y);
|
||||||
|
+ ospSetBox1f(this->TransferFunction, "value", tfRange.x, tfRange.y);
|
||||||
|
|
||||||
|
OSPData tfAlphaData = ospNewCopyData1D(&this->TFOVals[0], OSP_FLOAT, this->NumColors);
|
||||||
|
ospCommit(tfAlphaData);
|
||||||
|
@@ -427,6 +430,21 @@ void vtkOSPRayVolumeMapperNode::UpdateTransferFunction(
|
||||||
|
ospRelease(colorData);
|
||||||
|
ospRelease(tfAlphaData);
|
||||||
|
|
||||||
|
+ vtkContourValues* contours = volProperty->GetIsoSurfaceValues();
|
||||||
|
+ this->IsoColors.clear();
|
||||||
|
+ if (contours)
|
||||||
|
+ {
|
||||||
|
+ double* p = contours->GetValues();
|
||||||
|
+ for (auto i = 0; i < contours->GetNumberOfContours(); ++i)
|
||||||
|
+ {
|
||||||
|
+ double* ncol = colorTF->GetColor(p[i]);
|
||||||
|
+ this->IsoColors.push_back(ncol[0]);
|
||||||
|
+ this->IsoColors.push_back(ncol[1]);
|
||||||
|
+ this->IsoColors.push_back(ncol[2]);
|
||||||
|
+ this->IsoColors.push_back(scalarTF->GetValue(p[i]));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
this->PropertyTime.Modified();
|
||||||
|
}
|
||||||
|
VTK_ABI_NAMESPACE_END
|
||||||
|
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h
|
||||||
|
index 267875f057b..7769aece01c 100644
|
||||||
|
--- a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h
|
||||||
|
+++ b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h
|
||||||
|
@@ -68,6 +68,7 @@ protected:
|
||||||
|
|
||||||
|
std::vector<float> TFVals;
|
||||||
|
std::vector<float> TFOVals;
|
||||||
|
+ std::vector<float> IsoColors;
|
||||||
|
|
||||||
|
vtkOSPRayCache<vtkOSPRayCacheItemObject>* Cache;
|
||||||
|
|
||||||
|
--
|
||||||
|
GitLab
|
Loading…
Reference in a new issue