VTK纹理映射之vtkTransformTextureCoods

VTK将二维图像向三维空间中无参数化的曲面表面进行纹理映射(含代码) 而对于简单的参数模型,可以方便地建立模型与纹理空间的映射关系,例如。,例如,如果要实现重复纹理,只需通过 vtkTransformTextureCoords::SetScale()将纹理坐标每个方向进行放大,如由[0,1]变换到[0,101即可。而根据图形学三维空间变换容易实现模型空间到屏幕空间的变换,因此最终显示在计算机屏幕上的图像即是纹理映射后的结果。实现纹理映射主要是建立纹理空间与模型空间、模型空间与屏幕空间之间的映射关系。的纹理映射技术,通常需要将纹理空间到模型空间的映射分解为两。 阅读详情
本文介绍vtkTransformTextureCoods类。

纹理坐标系

  在《VTK纹理映射》文中,我们其实用的都是2D纹理,使用一张图片。它的坐标系是(s,t),即前面提到的u-v。

这里写图片描述

也可以有3D纹理,它被认为是多个2D Texture。,坐标系s-t-r。

这里写图片描述

vtkTransformTextureCoods

  vtkTransformTextureCoods类用来变换纹理坐标的,包括缩放、旋转和平移。即它是一个操作纹理坐标的filter,任何数据集都可以作为输入,同时输出和输入类型一直的数据集。被操作的纹理坐标被看作r-s-t,如上图所示。如果纹理映射是二维的,t 坐标就会被忽略。

vtkSmartPointer<vtkBMPReader> texReader =
        vtkSmartPointer<vtkBMPReader>::New();
    texReader->SetFileName("E:/TestData/masonry.bmp");

    vtkSmartPointer<vtkTexture> texture =
        vtkSmartPointer<vtkTexture>::New();
    texture->SetInputConnection(texReader->GetOutputPort());

    vtkSmartPointer<vtkXMLPolyDataReader> modelReader =
        vtkSmartPointer<vtkXMLPolyDataReader>::New();
    modelReader->SetFileName("E:/TestData/cow.vtp");

    vtkSmartPointer<vtkTextureMapToCylinder> texturemap =
        vtkSmartPointer<vtkTextureMapToCylinder>::New();
    texturemap->SetInputConnection(modelReader->GetOutputPort());

    vtkSmartPointer<vtkTransformTextureCoords> transformTexture =
        vtkSmartPointer<vtkTransformTextureCoords>::New();
    transformTexture->SetInputConnection(texturemap->GetOutputPort());
    transformTexture->SetScale(1, 1, 0);  //由于是二维映射,所以第三个参数r-Axis是不起作用的。

    vtkSmartPointer<vtkPolyDataMapper> mapper =
        vtkSmartPointer<vtkPolyDataMapper>::New();
    mapper->SetInputConnection(texturemap->GetOutputPort());

    vtkSmartPointer<vtkActor> actor =
        vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(mapper);
    actor->SetTexture(texture);

将actor加入自己的vtkRenderer实例中,运行结果:

这里写图片描述

验证修改r-axis参数,不起作用:

这里写图片描述

实现重复纹理,将纹理坐标s、t方向进行放大,有[0,1]变换成[0,5]:

这里写图片描述

VTK渲染raw格式的三维点云数据,并纹理贴图(纹理映射) #include<vtkSmartPointer.h> #include<vtkRenderWindow.h> #include<vtkRenderer.h> #include<vtkRenderWindowInteractor.h> #include<vtkInteractorStyleTrackballCamera.h> #incl... 阅读详情

相关推荐

vtkTransform 空间变换

图像处理与VTK/ITK文章列表 VTK笔记——空间几何变换(Transform),平移、旋转和缩放 其中注意,在进行旋转和缩放操作时,都需要先将该polydata整体平移回它的中心位置,然后再进行旋转和缩放操作,最后再将其移回到原来的位置处。 vtkSmartPointer<vtkTransform> transform = vtkSmartPointer<vtkTra...

C++ 爱好者 make_it_simple888 2665

VTK笔记——空间几何变换(Transform),平移、旋转和缩放

先看一张图,下图是一个三维的Cow, 试想在使用中,是否会遇到如下场景? 1.将Cow移动到某个位置 2.旋转Cow到背面 3.想看清楚Cow面部的细节,改变它大小等等 可能你会说,这还不简单,通过操作相机就好了。操作相机,使得相机的空间位置发生了变化,但对三维物体的空间位置并没有改变,要想改变模型的空间位置,就需要对模形本身做空间变换。 空间变换的基础知识 变换矩阵(Trans...

Andy的专栏 3万+

VTK-API_23:vtkTransform 详解

是VTK中用于描述和管理几何变换的类。它继承自,能够表示平移、旋转、缩放、错切以及它们的组合。可以用来构造4x4变换矩阵(齐次坐标矩阵)支持将变换应用到点、向量、法线等几何数据可以进行变换的组合(先旋转再平移等)变换是以矩阵的形式存储和操作的。

yumeiguo的博客 200

vtkTransform的一点理解

vtkAbstractTransform是所有几何变换类的基类, 提供了管线机制。基类中包括几个主要的变换函数如下图所示,用来对点、点的法向量、点的向量进行变换。

ljy338的博客 1100

VTK纹理映射体绘制_三维纹理映射

用VS2013配置PCL后可以运行此程序,程序有PCL的属性列表,改一下就好,此程序为VTK的纹理映射体绘制_三维纹理映射,内含vtk文件

​银行IT运维人必看!IT运维监控指标大全,一篇讲透

文章摘要:本文从七个维度系统阐述了IT运维指标体系,涵盖机房环境、基础设施、网络设施、数据存储、虚拟化平台、数据库中间件和应用层。作者结合20年金融行业经验,详细分析了各层级关键监控指标、正常范围及异常后果,并给出典型故障场景。重点强调现代运维需从被动响应转向主动预防,通过精细化指标管理实现系统稳定性保障。文章特别指出,在国产化与DevOps背景下,运维工作需兼顾传统架构与新兴技术,构建全方位监控体系,将运维从"故障报警"升级为"业务守护"。

最近开始研究AIGC领域技术,欢迎交流 1106

VTK 中的坐标变换 | 基础

VTK 中的坐标变换 | 基础

ProgramNovice的博客 1556

【G4基础08】GPS-2-Macro Commands宏命令

GPS-2

adelall的博客 3738

VTK 模型的旋转与平移

当从外界读入STL等三维模型时,其会按照它内部的坐标位置进行显示。因此它的位置和大小是确定的。但是在实际应用中,有可能需要人为地对这个模型在空间中进行旋转、平移或缩放等操作。VTK中有许多和旋转、平移相关的函数,下面一一进行测试。 RotateX、RotateY、RotateZ(绕自身坐标轴旋转)   Rotate the Prop3Din degreesabout the X/Y/Z axis using theright hand rule. The axis isthe Prop3D's X...

laziji的专栏 6355

八戒留档之宝塔部署edusoho

1.安装好基础的服务 2.上传你下载的代码到www/wwwroot文件3、配置网站 4.编辑创建的网站修改nginx文件 NGINX配置如下 server { listen 80; server_name 你的域名; root /www/wwwroot/项目文件名称/web/; location / { try_files $uri /app_dev.php$is_args$args; } ...

wolf23151269的博客 2541

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8160

VTK修炼之道59:图形基本操作进阶_纹理映射

1.纹理映射 纹理映射是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。纹理生成过程实质上是将所定义的

沈春旭的博客 3392

FPGA/IC 秋招笔试/面试题总结(目录)

FPGA/IC 秋招笔试/面试题总结-目录介绍 文章目录FPGA/IC 秋招笔试/面试题总结-目录介绍一、FPGA内部资源1. 什么是FPGA2.FPGA内部资源二、同步时钟、同步/异步电路1.同步时钟2.同步/异步电路三、同步复位/异步复位1.同步复位2. 异步复位3. 异步复位同步释放四、同步FIFO/异步FIFO1.同步FIFO2.异步FIFO五、FIFO最小深度计算1.FIFO最小深度2.示例分析六、逻辑电平1.TTL电平标准2.LVTTL电平标准3.CMOS电平标准4.LVCOMS电平标准5.RS

Crazzy_M的博客 2万+

VTK颜色映射处理

颜色查找表我们可以手动创建一个颜色查找表,如果没有创造的话,贴心的vtk会自动为我们生成一个默认的颜色查找表,颜色查找表中允许我们自由设定颜色值。vtkLookupTable可以帮助我们来完成这个工作,同时,设定了颜色数量时,SetTabValue()方法可以将颜色值插入到指定的位置。另外,SetScalarRange()告诉我们采取什么方法映射,标量值大于最大值的将被归为最大值,标量值小于最小值...

sinat_23619409的博客 1万+

YOLOv12 改进 | Backbone改进 3

将CSP中的简单拼接改为可学习的特征选择门控,动态决定哪些特征流向下一层,同样再写这篇。:相比静态CSP的固定50/50分割,门控机制可学习0.3:0.7等最优比例。在输入端加入轻量SR模块,对下采样后的特征进行超分恢复,提升小目标检测能力。(小目标): 从 0.51 AP → 0.63 AP (+24%):采用ESPCN的高效亚像素卷积,避免传统插值的信息损失。:从通道级(SE)到空间级(Spatial)的多粒度控制。:结合浅层细节和深层语义,恢复小目标的纹理信息。

u012133341的博客 841

从技术债红线到系统治理:透视 SAP Clean Core 中的 Level D

SAP推出的Clean Core分级体系将扩展风险划分为A到D四个等级,其中Level D代表最高风险类别,涉及直接修改标准代码、隐式增强、使用noAPI对象等不被推荐的做法。这些做法虽然短期见效快,但会带来升级冲突、数据完整性风险等长期问题。SAP强调治理重点不是完全消除经典ABAP,而是优先清理Level D对象,逐步向稳定接口迁移。典型案例显示,依赖内部细节的扩展往往在系统升级或云迁移时集中暴露出问题。企业应通过工具链持续监控Level D占比,将其纳入技术债管理范畴。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1064

VTK transform空间变换

vtk transform 矩阵变换顺序

ahy86045的博客 612

Xiaojie雷达之路---手把手教你从串口获取雷达原始数据(一)---新建工程(开始)

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章---利用串口获取毫米波雷达中的原始数据,本系列文章将从新建工程到最后原始数据显示到PC上进行逐步介绍,这个系列的文章大约是一个4-5篇左右。本篇文章呢,主要讲的是如何新建一个毫米波雷达的工程。

XiaoJie的博客 5810

VTK纹理映射

本文介绍VTK中纹理映射。 纹理映射  纹理映射是创建逼真效果的强大的图形工具,其原理是渲染时把二维的图像“贴”到物体的表面啥昂,根据二维图像渲染出丰富多彩的效果,所有也叫纹理贴图。纹理映射需要三个要素:带贴图的表面、纹理映射以及纹理坐标。其中纹理映射在VTK中就是vtkImageData的数据集,而纹理坐标则用于控制纹理图在表面的位置,作为被贴对象数据的属性。vtkSmartPointer<vtk

阿兵-AI医疗的专栏 5377

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

vtk中的纹理贴图详解

vtk中的纹理贴图要用 vtkTextureMapToPlane vtkTextureMapToSphere  vtkTextureMapToCylinder与 vtkTransformTextureCoords 配合使用才能达到最好的效果。目前vtk只支持2维纹理,3维纹理似乎并不支持。那么vtk的纹理是如何工作的呢??那么我们通过自己的一段代码来解释一下:我们用vtk的tcl来解释代码了。首先

yqxx的专栏 8898

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[实验]用VTK给立方体贴纹理

今天需要用vtk实现贴图功能,搜遍网上居然都没有找到很好的学习资料,只是找到一篇写于07年的“vtk中的纹理贴图详解”里面有一个例子,是在一个平面上贴图,但我要实现的是三维空间中的贴图,类似于在一个立方体上面贴图,有参考的例子了,开始实验: 1、VTK纹理贴图基础: 见vtk中的纹理贴图详解(点击进入)     2、实验开始:   预定义

3742

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VtkTransform 和 SetPosition的区别

想要对原始数据进行位置操作,一定要搞清楚VtkTransform 和 SetPosition的区别啊!!!SetPosition这是改变Actor的显示位置,原始数据的位置是不变的,而VtkTransform是对原始数据进行平移,旋转的,是改变原始数据位置的,切记别入坑。 #include <vtkSmartPointer.h> #include <vtkSphereSou...

AIGC Studio:分享AIGC前沿知识和好玩应用,公众号同名。 3534

Python调用vtk库和numpy绘制自定义曲面,并进行纹理映射

使用vtk库进行自定义曲面的三维绘制,并进行纹理映射,适用于已知曲面公式的三维物体的建模和纹理映射。

m0_57315535的博客 3265

vtk用户指南 第五章 可视化技术

在前一章中介绍了一些渲染和交互数据的基本工具。在本章中,我们将向您展示各种可视化技术。这些技术(作为过滤器实现)根据它们操作的数据类型进行组织。一些过滤器是通用的,可以应用于任何类型的数据——那些接受vtkDataSet类(或任何子类)输入的过滤器。许多过滤器更专门于它们接受的输入类型(例如,vtkPolyData)。有一类过滤器——那些接受vtkImageData类型输入的过滤器(或其过时的子类vtkStructuredPoints)——在本章中没有提到。相反,这种类型的过滤器将在下一章(第103页的“图

qq_39966730的博客 1661

vtkTransform实例 1

1. 4*4矩阵类vtkMatrix4x4   接口函数:void SetElement(int i, int j, double value),i行、j列的值为value 1 #ifndef INITIAL_OPENGL 2 #define INITIAL_OPENGL 3 #include <vtkAutoInit.h> 4 VTK_MODU...

weixin_30681615的博客 403

VTK之基于Qt的VTK应用程序

  友好的用户图形界面是应用程序必须的因素之一,对于VTK应用程序也是如此。VTK附带的程序示例大多数是基于控制台的,但是VTK也可以与很多流行的GUI开发工具整合。本文介绍如何把VTK(7.1.0)和GUI开发工具Qt(5.x)进行整合。 VTK之基于Qt的VTK应用程序   Qt是跨平台的GUI开发工具,VTK也提供了大量的类支持Qt。VTK工程是用CMake进行管理的,而Qt自身有qma...

阿兵-AI医疗的专栏 1万+
上一篇: VTK基本概念之主要对象
下一篇: VTK纹理映射
暮-成-雪
博客等级 码龄12年 5328粉丝 319原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值