mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-01-27 23:44:04 +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
|
||||
pkgdesc = Software system for 3D computer graphics, image processing, and visualization
|
||||
pkgver = 9.3.0
|
||||
pkgrel = 6
|
||||
pkgrel = 7
|
||||
url = https://www.vtk.org/
|
||||
arch = x86_64
|
||||
license = BSD
|
||||
|
@ -108,8 +108,10 @@ pkgbase = vtk
|
|||
source = https://www.vtk.org//files/release/9.3/VTK-9.3.0.tar.gz
|
||||
source = vtk-occt.patch
|
||||
source = https://gitlab.kitware.com/vtk/vtk/-/commit/5055371e.patch
|
||||
source = ospray-3.patch
|
||||
sha256sums = fdc7b9295225b34e4fdddc49cd06e66e94260cb00efee456e0f66568c9681be9
|
||||
sha256sums = df958eabc7dc4f5b33383ce0fb0f90a3ba202c1c2a24d3b5b9e7cfb1fb38b011
|
||||
sha256sums = 54861a8667c505fedb96b49283521ce62af62148b629e953bbd065f831f02d04
|
||||
sha256sums = faf3fd2eea2f73a07f5dcbd67920161a07ae554e008ad1e4099153fec2882278
|
||||
|
||||
pkgname = vtk
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
pkgname=vtk
|
||||
# May need bootstrapping on upgrades due to circular vtk <-> opencascade dependency
|
||||
pkgver=9.3.0
|
||||
pkgrel=6
|
||||
pkgrel=7
|
||||
pkgdesc="Software system for 3D computer graphics, image processing, and visualization"
|
||||
arch=(x86_64)
|
||||
url="https://www.vtk.org/"
|
||||
|
@ -126,10 +126,12 @@ optdepends=(
|
|||
options=(staticlibs)
|
||||
source=(${url}/files/release/${pkgver%.*}/VTK-${pkgver}.tar.gz
|
||||
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'
|
||||
'df958eabc7dc4f5b33383ce0fb0f90a3ba202c1c2a24d3b5b9e7cfb1fb38b011'
|
||||
'54861a8667c505fedb96b49283521ce62af62148b629e953bbd065f831f02d04')
|
||||
'54861a8667c505fedb96b49283521ce62af62148b629e953bbd065f831f02d04'
|
||||
'faf3fd2eea2f73a07f5dcbd67920161a07ae554e008ad1e4099153fec2882278')
|
||||
|
||||
prepare() {
|
||||
cd ${pkgname^^}-${pkgver}
|
||||
|
@ -137,6 +139,7 @@ prepare() {
|
|||
|
||||
patch -Np1 -i "$srcdir"/vtk-occt.patch
|
||||
patch -Np1 -i ../5055371e.patch # Fix link to PDAL 2.6
|
||||
patch -Np1 -i ../ospray-3.patch # Fix build with ospray 3.0
|
||||
}
|
||||
|
||||
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