看到3DSlicer和paraview中的颜色不透明度调整,你是否也有心动。经过多天摸索,发现这虽然是个小模块,可是如果真是自己做,还挺复杂(可能是自己VTK和QT学的还不够好)。

但是CTK已经为我门做好了,我试着编译和写了个Demo,但是最新的CTK只支持VTK8的版本,如果是用的VTK7也想做一个类似的东西怎么办?那就是把VTK8的东西添加到VTK7上然后修改。具体如下:

vtkGUISupportQt工程中添加了QVTKOPenGLWidget类
vtkRenderingOpenGL2工程中修改了vtkOpenGLRenderWindow类
vtkRenderingCore工程中修改了vtkRenderer, vtkRenderWindow类

这些可以通过和vtk-7.1.1中对应的类比较一下。

最终结果如下:

我把资源上传到了,大家下载吧。

具体Demo代码如下:

#include "testCTK.h"testCTK::testCTK(QWidget *parent): QWidget(parent)
{ui.setupUi(this);// Create transfer mapping scalar value to opacity.opacityTransferFunction = vtkSmartPointer<vtkPiecewiseFunction>::New();opacityTransferFunction->AddPoint(0.0, 0.0);opacityTransferFunction->AddPoint(36.0, 0.125);opacityTransferFunction->AddPoint(72.0, 0.25);opacityTransferFunction->AddPoint(108.0, 0.375);opacityTransferFunction->AddPoint(144.0, 0.5);opacityTransferFunction->AddPoint(180.0, 0.625);opacityTransferFunction->AddPoint(216.0, 0.75);opacityTransferFunction->AddPoint(255.0, 0.875);// Create transfer mapping scalar value to color.colorTransferFunction = vtkSmartPointer<vtkColorTransferFunction>::New();colorTransferFunction->AddRGBPoint(0.0, 0.0, 0.0, 0.0);colorTransferFunction->AddRGBPoint(36.0, 1.0, 0.0, 0.0);colorTransferFunction->AddRGBPoint(72.0, 1.0, 1.0, 0.0);colorTransferFunction->AddRGBPoint(108.0, 0.0, 1.0, 0.0);colorTransferFunction->AddRGBPoint(144.0, 0.0, 1.0, 1.0);colorTransferFunction->AddRGBPoint(180.0, 0.0, 0.0, 1.0);colorTransferFunction->AddRGBPoint(216.0, 1.0, 0.0, 1.0);colorTransferFunction->AddRGBPoint(255.0, 1.0, 1.0, 1.0);gradientOpacity = vtkSmartPointer<vtkPiecewiseFunction>::New();gradientOpacity->AddPoint(10, 0.0);gradientOpacity->AddPoint(90, 0.5);gradientOpacity->AddPoint(100, 1.0);volumeProperty = vtkSmartPointer<vtkVolumeProperty>::New();volumeProperty->SetColor(colorTransferFunction);volumeProperty->SetScalarOpacity(opacityTransferFunction);volumeProperty->SetGradientOpacity(gradientOpacity);volumeProperty->ShadeOff();volumeProperty->SetInterpolationTypeToLinear();m_layout = new QGridLayout(this);m_ctkVTKVolumePropertyWidget = new ctkVTKVolumePropertyWidget(this);m_ctkVTKVolumePropertyWidget->setVolumeProperty(volumeProperty);m_ctkVTKVolumePropertyWidget->show();m_layout->addWidget(m_ctkVTKVolumePropertyWidget);setLayout(m_layout);
}

体渲染-------颜色、不透明度调整相关推荐

  1. 全局体渲染光照技术总结概括(截止到2014年)

    我打算尽可能详细整理一下体渲染的光照算法,从一篇比较详细的综述入手,里面的内容会根据需要进行展开. 目录 目录 1-材料散射 2-算法的分类 3-算法描述 3-1-基于局部区域的技术 3-1-1 基于 ...

  2. 2018年 IEEE VIS 科学可视化与体渲染论文整理与分析

    因为最近工作的关系,需要研究一下IEEE VIS中2017年以后的与我之前主要方向(体渲染.医学可视化)有关的论文.我把这些年全部的论文进行了筛选和梳理,总共筛选出57篇论文,打算写一个文章来记录这些 ...

  3. vtk 利用体渲染绘制地球

    vtk 利用体渲染绘制地球 之前看到有人问体渲染绘制地球的颜色渲染不对.难道还有构建体素数据来渲染地球这种玩法吗?果断试一下: 1 找地球图片数据 2 贴图实现地球的可视化(TexturedSpher ...

  4. 基于区域求和表的实时体渲染环境光遮蔽和光晕技术

    对于体模型来说,很多光学效应都很难实时生成.它们可能对渲染时间有重要影响,或者它们需要预先计算,阻止了以交互方式更改传递函数,因为它决定了遮挡. 本文提出了两种在体模型上快速生成环境遮挡的方法: 第一 ...

  5. 斯图加特大学GPU光线投射体渲染技术提携

    斯图加特大学GPU光线投射体渲染技术介绍 前言:在以往人们的印象中,美国的CG技术是一世界第一流的,而没有注意德国CG技术的发展.事实上,德国大学的CG是相当高的,与美国第一流的大学学术交往非常频繁. ...

  6. 实时体积云渲染(地平线):三.云体渲染

    实时体积云渲染(地平线):三.云体渲染 体渲染 最常见的体可视化方法就是Ray-marching法.该方法如下图: 在像云这样的部分透明的介质的情况下,采样点将沿着视线进一步增加到场景中,并增加固定的 ...

  7. ThreeJS 中体渲染,利用噪声模拟烟,云

    ThreeJS 中体渲染,利用噪声模拟烟,云 体渲染的东西也看了一段时间了,这里结合Three.js中体积云的例子,实现shdertoy中的一个效果,先放效果图. Fire2 (shadertoy.c ...

  8. 用体渲染的方法在Unity中渲染云(18/4/4更新)

    github: https://github.com/yangrc1234/VolumeCloud 更新的内容在底部 最近在知乎上看到一篇文章讲云层的渲染(https://zhuanlan.zhihu ...

  9. 医学图像体渲染照明2 体照明模型

    这一节里,我们推导了先进的体积照明方法经常使用的体积照明模型.该模型基于Max[1995]推导的光学模型以及Max和Chen[2010]最近描述的扩展.为了清楚起见,我们将模型中使用的定义作为以下参考 ...

  10. CSS3颜色不透明度如何设置

    web前端技术包含HTML和CSS样式,两者是相辅相成的,学习CSS样式不必可少,那么在学习CSS样式中,CSS3颜色不透明度如何设置?在CSS3之前,我们设置颜色的方式包含十六进制颜色(如#F00) ...

最新文章

  1. 李开复:AI行业正在回归商业本质,技术公司要有服务心态落地为王
  2. ASP.NET基础教程-SqlConnection对象-使用连接事件
  3. 【正一专栏】卡卡退役-送别了多少人的青春和初恋
  4. 没有与参数列表匹配的 重载函数 strcpy_s 实例_Zemax光学设计实例(84)Ftheta扫描平场透镜的设计...
  5. 昆工c语言题库,昆明理工大学C语言期末统考试题
  6. python和java的区别-Python与Java的区别与优劣?
  7. mysql group by having 子句
  8. android 标题名字,说说 Android 的 Material Design 设计(五)——可折叠式标题栏
  9. 毕向东Java笔记(全部)
  10. 转载-极化码系列(1)-极化码的起源和概述
  11. 精通 C++ 是个毛意思
  12. Linux实验四:文件的压缩
  13. PyTorch模型 .pt、.pth与.pkl 的区别
  14. P4234 最小差值生成树
  15. 小程序毕设作品之微信评选投票小程序毕业设计(1)开发概要
  16. 微信内点击链接或扫描二维码直接打开手机默认浏览器打开指定网页
  17. Hive常用窗口函数实战
  18. ubuntu WPS 提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”的解决方法
  19. 解决FTP文件访问需要输入用户名和密码的问题
  20. 【关于uvm打印的注意事项

热门文章

  1. 维普c语言代码查重原理,维普查重太假了?面对变态查重方式,如何修正才能通过考核?...
  2. 问卷星刷问卷(一)xpath使用
  3. 解决同一办公环境局域网下无法添加打印机的情况
  4. VR渲染和CR渲染同样文件的真实对比(附CR渲染参数)
  5. win10做文件服务器怎么精简,win10精简系统怎么做到
  6. Redis高级特性之神奇的HyperLoglog解决统计问题
  7. 笔记本计算机故障与诊断,笔记本电脑维护与故障诊断
  8. SQL Server 去除节假日天数,获取实际工作日天数
  9. sad代价计算_基于改进代价计算和自适应引导滤波的立体匹配
  10. word中在分页符后设置标题的段前间距