《计算机图形学》课件 5.13 三维线段裁剪_第1页
《计算机图形学》课件 5.13 三维线段裁剪_第2页
《计算机图形学》课件 5.13 三维线段裁剪_第3页
《计算机图形学》课件 5.13 三维线段裁剪_第4页
《计算机图形学》课件 5.13 三维线段裁剪_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

三维线段裁剪裁剪剔除不可见物体,使渲染的场景与相机/观察者的视野保持一致,并减少后续光栅化和着色计算量三维裁剪是二维裁剪的扩展三维线段裁剪为避免和任意形状的视景体的各个面进行裁剪,OpenGL渲染管线一般采取先变换-后裁剪的策略利用投影变换矩阵,将任意视景体变换为规范设备立方体x,y,z∈[-1,1]

关于

x=±1,y=±1,z=±1

六个平面作比较,完成裁剪三维裁剪是二维裁剪的扩展平行投影中视景体本就是长方体,变换后仍是长方体先进行平行投影,后裁剪平行投影3DCohen-Sutherland编码

约定规范设备立方体使用左手系3DCohen-Sutherland线段裁剪算法流程

基于参数方程的三维求交

其他5个平面同理,只需改变主变量和边界值

透视投影:透视投影下的裁剪

透视投影:透视投影下的裁剪

透视投影:透视投影下的裁剪思考:如果和之前在平行投影中操作的那样,在透视除法之后进行裁剪,会出现什么问题呢?

透视投影下的裁剪如果在透视除法后裁剪,会发生:奇点崩溃:若线段跨越相机平面(z=0平面),中间必有一点z=0。若先做除法,会发生除数为0的问题,导致计算崩溃空间翻转:点(−𝑥,−𝑦,−𝑧,−1)和(𝑥,𝑦,𝑧,1)经透视除法后坐标均为(𝑥,𝑦,𝑧),相机前后方的物体“翻转”到同一个位置,导致渲染错误因此,透视投影下的裁剪一般在齐次除法之前进行(先4D裁剪,再透视除法)裁剪条件变化:−1≤𝑥/𝑤≤1⇒−𝐰≤𝐱≤𝐰⇒𝑤+𝑥≥0(左侧)且𝑤−𝑥≥0(右侧)4D齐次空间裁剪条件

为讨论方便,省略下标c6个裁剪平面的方程变为:左:𝑤+𝑥≥0 右:𝑤−𝑥≥0下:𝑤+𝑦≥0 上:𝑤−𝑦≥0远:𝑤+v≥0 近:𝑤−𝑧≥04D齐次空间裁剪条件4D齐次空间裁剪算法流程

4D齐次空间裁剪算法伪代码functionClipSegment4D(P0,P1):

loop:

code0=ComputeOutCode4D(P0)

code1=ComputeOutCode4D(P1)

//1.简单接受

if(code0|code1)==0:

Accept

&return

//2.简单拒绝

if(code0&code1)!=0:

Reject

&return

//3.求交

outcode=code0?code0:code1

P_new=IntersectPlane4D(P0,P1,outcode)//4D空间求交函数

if(outcode==code0)P0=P_new

elseP1=P_new基于参数方程的4D空间求交

基于参数方程的4D空间求交

基于参数方程的4D空间求交

小结三维裁剪是二维的直接推广可利用规范设备立方体简化计算平行投影裁剪透视投影裁剪视景体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论