|
|
我现在在做基于三维纹理的体切割操作,在学习opengl的过程中,始终没找到实现算法的方法,故请教
我是想在屏幕上画出需要剪切的区域,将这一部分三维纹理数据标记为0,具体算法:
1、构造与绘制视口大小一致的缓存区S,并初始化为0;
2、根据得到的切割区域C,将切割区域内部对应的缓存区的元素设为1,构造包含切割结构信息的剪切模板;
3、对每个体素(x,y,z),用 f(x,y,z)表示在(x,y,z)上的体数据值;
计算对应的剪切坐标:(x0,y0)=M1*M2*(x,y,z) //M1为投影变换矩阵,M2为视点模型矩阵
体探测:if(s(x,y )= 0),令 f(x,y ,z)= 0;
体切除:if(s(x,y )= 1),令 f(x,y ,z)= 0;
4、更新体数据,进行绘制。
我们采用的是透视投影。
opengl好像是对绑定的纹理对象整个进行操作,我现在需要标记每个纹素,所以需要对每个纹素进行操作,怎么办?
opengl初学者,多多指教,谢谢! |
|