计算机图形学————— 3D对象表示

学习目标

1、理解标准图形对象的概念
2、能通过数学展示并通过open gl 编程两种平面表示:tables and mesh
3、区分参数和非参数方程的概念,并了解在计算机图形学中使用参数方程的优势
4、能够在OpenGL二次曲面和超二次曲面中进行数学运算和编程

标准图形对象

standard graphics object = a set of (planar) polygons
定义:标准图形对象就是一组平面多边形
专用硬件旨在加快标准图形对象的渲染速度。
两种存储方法:
1、用表格存储(顶点,边,多边形,属性)比如下图
在这里插入图片描述
2、四边形网格(quadrilateral mesh
通过一个n*m数组,数组里放顶点位置 (x,y,z)
nxm个顶点可以表示(n-1)x (m-1)个四边形的表面
3、glut常用公式
(GLUT(英文全写:OpenGL Utility Toolkit)是一个处理OpenGL程式的工具库,负责处理和底层操作系统的呼叫以及I/O。)

glutWire  #线框
glutSolid  #作为填充区域多边形补丁
glutsolidcube(edgelength)

Tetrahedron, Cube, Octahedron, Dodecahedron, Icosahedron 

平面的表示

ax+by+cz+d=0
*只有a b c 决定该平面,d用来表示的是该平面是否过原点

法向量 normal vector

1、法向量的计算:选择平面内三个顶点v1 v2和v3,则法向量为 n =(v2-v1)✖️(v3-v2)
2、点与平面的位置关系,若
aX+bY+cZ+d > 0 则在面外
aX+bY+cZ+d = 0 在面上
aX+bY+cZ+d < 0 在面内
3、选取平面内v1 v2 v3 如果
CCW边是逆时针方向 是外面
CW边是顺时针 是里面

内外测试

目的:判断像素点 p 在物体s 的里面还是外面
步骤:
1、从点 p 开始 发出一条射线 p+tv
2、找到在这条射线和物体之间的全部 非退化交点
3、如果交点数目为奇数,则表明p在物体内;反之p在物体外
note: 判断是否为非退化交叉点并不容易。所以我们可以通过随机发出多条射线然后服从多数结果**退化的交点是射线掠过表面的交点

看图释比较好理解
在这里插入图片描述

超二次元

二元二次 2D QUADRICS (conic section)
在这里插入图片描述
三元二次
在这里插入图片描述
二维空间中,我们有:
在这里插入图片描述
三维空间中 我们有:
在这里插入图片描述
超二次元(下图超椭圆
随着s从0.5-3的改变,图形可能从圆变为4边形
在这里插入图片描述在这里插入图片描述

非参数和参数方程

非参数形式:
Z=f(X,Y) 、 f(X,Y,Z)=0
参数形式:
X=f1(u,v) 、 Y=f2(u,v)、 Z=f3(u,v)

参数形式在opengl里的使用更广泛

openGL内 没有超二次元方程式

在这里插入图片描述

发布了9 篇原创文章 · 获赞 2 · 访问量 334

猜你喜欢

转载自blog.csdn.net/qq_41901755/article/details/104498137