2 VTK的基本概念

2.1 三维场景中的基本要素

(1) 灯光

A 位置灯光(vtkSpotLight)

"聚光灯",灯光在场景中的某个位置,光源具有锥角和衰减值。

B 方向灯光(vtkDirectionalLight)

"平行光",类似于太阳光

C 点光源(vtkPointLight)

一个点向所有方向发射光源,强度随距离衰减

(2) 相机

VTK中相机的主要功能是将三维场景投影到二维平面。相机的属性设置包括:

  • 相机位置:相机在三维场景中的坐标,SetPosition(0.1,0.1,0.1)
  • 相机焦点:相机对准的目标点,SetFocusPosition(0,0,0)
  • 朝上方向:定义相机的"正上方"方向,SetViewUp(0,0,1)
  • 相机视角:决定镜头视野范围,焦距越大,视野越小-视角越小,SetViewAngle(30.0)
  • 投影方向:相机位置到相机焦点构成的向量方向即为投影方向
  • 前后裁剪平面:只有这两个裁剪平面的中间的物体才能被看到,SetClippingRange(10,1000)

(3) 颜色

颜色是物体的一种属性,由vtkProperty控制

(4) 纹理映射

纹理映射的本质是将二维图像贴到三维物体的表面上,纹理映射的要素包括:待贴图表面、纹理坐标、纹理映射

2.2 坐标系统和空间转换

(1) 坐标系统

A Model坐标系统

定义模型时候采用的坐标系,一个局部的笛卡尔坐标系

B World坐标系统

放置Actor对象的三维空间坐标系

C View坐标系统

相机内部的坐标系统,三轴的取值都为-1.0,1.0

D Display坐标系统

显示屏的坐标系统,单位是像素

(2) 空间转换

A 线性变换

平移、旋转、缩放、剪切等变换,本质是通过齐次矩阵乘法完成

B 透视变换

模拟相机透视投影的变换、将三维空间中的点映射到二维平面中;关键参数:相机内参和外参

C 非线性变换

如薄样条变换,用于模拟薄板受外力弯曲的效果,变形之后保持平滑无折角

2.3 VTK管线和渲染引擎

(1) VTK管线

VTK管线的主要任务是对数据的读取、转换、加工等操作;此外需要注意的是:VTK管线的执行遵循惰性赋值的原则。

(2) VTK渲染引擎

VTK渲染引擎的主要任务是负责将VTK管线输出的数据进行可视化表达:图形绘制、视觉效果控制、交互响应等。主要使用的类包括:vtkActor、vtkRender、vtkRenderWindow等

相关推荐
_Emma_15 天前
【DRM&Graphic】Linux图形与显示框架
linux·驱动开发·图形渲染·显示器
算力百科小星16 天前
2026 算力平台测评:智星云、Vast.ai、Lambda Labs 口碑与实力对比
图形渲染·gpu算力·gpu租用
郝学胜-神的一滴17 天前
[简化版 GAMES 101] 计算机图形学 13:从光栅化到着色——赋予三维像素光影灵魂
c++·计算机视觉·unity·godot·图形渲染·opengl·unreal
DBBH18 天前
AI帮我忙之webgpu实时路径追踪 下级 three.js接入OIDN
图形渲染·webgpu
成都渲染101云渲染666620 天前
CR15新功能介绍以及CR15云渲染流程
ue5·图形渲染·blender·maya·corona
charlie11451419120 天前
通用GUI编程技术——图形渲染实战(五十)——命中测试与鼠标事件路由:精确交互
c++·windows·架构·交互·图形渲染
做cv的小昊20 天前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
RReality20 天前
【Unity UGUI】血条 / 进度条(HP Bar)
ui·unity·游戏引擎·图形渲染
郝学胜-神的一滴21 天前
中级OpenGL教程 009:用环境光告别模型死黑
前端·c++·unity·godot·图形渲染·opengl·unreal
charlie11451419121 天前
通用GUI编程技术——图形渲染实战(四十八)——Owner-Draw控件:让标准控件焕然一新
图形渲染