OpenGL中线框图的消隐

opengl 消隐算法 OpenGL 实现消隐算法 通过控制键盘来实现图形的平移,可以上下左右移动 立即下载

隐藏线消除
使用深度缓存的2通道绘制的OpenGL实现:
1. 禁写颜色缓存
    glColorMask(0, 0, 0, 0);
2. 启用深度测试
    glEnable(GL_DEPTH_TEST);
    glDepthFunc (GL_LESS);
3. 以多边形填充模式绘制对象,要使用多边形偏移(Pass1)
    glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);
    glPolygonOffset(1.1f, 4.0f);
    glEnable (GL_POLYGON_OFFSET_FILL);  //启用多边形偏移
    drawScene ();
    glDisable (GL_POLYGON_OFFSET_FILL);
4. 启用颜色缓存
    glColorMask(1, 1, 1, 1);
5. 采用两种线绘制方式之一绘制对象中包含的线段(Pass2).

具体实现代码

int DrawGLScene(GLvoid)        // 从这里开始进行所有的绘制
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
    glLoadIdentity();     // 重置模型观察矩阵
    glTranslatef(0.0f,0.0f,-5.0f);      // 移入屏幕 5 个单位
    static float xrot=0.0f,yrot=0.0f,zrot=0.0f;
    glRotatef(xrot,1.0f,0.0f,0.0f);      // 绕X轴旋转
    glRotatef(yrot,0.0f,1.0f,0.0f);      // 绕Y轴旋转
    glRotatef(zrot,0.0f,0.0f,1.0f);      // 绕Z轴旋转
   
    glDisable(GL_TEXTURE_2D);
   
    glColorMask(0,0,0,0);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
    glPolygonOffset(1.1f, 4.0f);
    glEnable (GL_POLYGON_OFFSET_FILL);  //启用多边形偏移
    //auxSolidSphere(1.0);
    auxSolidTeapot(1.0);
    glDisable (GL_POLYGON_OFFSET_FILL);
    glColorMask(1, 1, 1, 1);
    glPolygonMode (GL_FRONT_AND_BACK, GL_LINE);
    //auxSolidSphere(1.0);
    auxSolidTeapot(1.0);
   
    xrot+=1.3f;        // X 轴旋转
    yrot+=1.2f;        // Y 轴旋转
    zrot+=1.4f;        // Z 轴旋转
    return TRUE;       //  一切 OK
}


效果图:

opengl的立方体消隐算法 opengl的立方体消隐算法 可以实现选择 放大缩小 立即下载

相关推荐

opengl实现平移缩放旋转消隐纹理

可以交互实现光照颜色变化,交互控制物体位置,旋转,放缩。对比了有无消隐,增加了纹理。可选择多种加载的物体。

OpenGL导入3DS专题

最近一直在研究如何将3D模型导入OpenGL,略微有些进展,在附录部分把它记录下,希望能起到抛砖引玉的作用,有足的地方,请大家指出

You can you up 7456

OpenGL 建模及消隐实现

比较完整的实例,实现简单模型的建模,参数修改,位置的变换,物体的拖拽,及空间环境的文件保存及打开。

基于C++OpenGL实现的小桌茶壶图形绘制消隐和光照

在进行光照计算时,材料对环境光的反射率与每个进入光源的环境光结合。首先,根据实验的要求,我们要对桌子的材质进行适当的修改,以使得在光照条件下,桌子和茶壶可以呈现出我们理想的效果。其中桌面和桌腿的漫反射系数和镜面反射的颜色我决定都使用物体固有色,而对于茶壶,镜面反射系数为了呈现高光效果,通过断调试来找一个合适的颜色与镜面反射系数,比如50。通过设置材料使得桌面和四条腿的颜色各相同,分别为:(1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 1, 1), (0, 0, 1);

毕业作品网站 2276

OpenGL消隐凸多面体

(2)消隐部分用虚线绘制。(1)视点由用户输入;

github_73913334的博客 432

计算机图形学---Opengl 3D消隐

消隐 常见的消隐法:外法线法、深度缓冲器法、画家算法 数学知识,点乘法,没有方向 S•N = s1n1+s2n2+s3n3 观察方向S(s1,s2,s3) 法线N(n1,n2,n3) S•N >0时, 面可见 S•N <0时, 面可见 而法线:根据向量判定,两条边的叉乘 即N=(n1=u2v3-u3v2,n2=u3v1-u1v3,n3=u1v2-u2v1) 步骤总结: 设置顶点表和面点表 消隐算法—外法线法 一、设置顶点表和面点表 面点表中顶点序规则:右手法则,大拇指沿法线指向面外,围

weixin_45774924的博客 3418

OpenGL中线框图消隐(转, 作者Y_Y)

 隐藏线消除使用深度缓存的2通道绘制的OpenGL实现:1. 禁写颜色缓存    glColorMask(0, 0, 0, 0);2. 启用深度测试    glEnable(GL_DEPTH_TEST);    glDepthFunc (GL_LESS);3. 以多边形填充模式绘制对象,要使用多边形偏移(Pass1)    glPolygonMode (GL_FRONT_AND_BACK, GL_

OpenGL 技术 2878

opengl 多边形线框_OpenGL中线框图消隐 | 学步园

隐藏线消除使用深度缓存的2通道绘制的OpenGL实现:1. 禁写颜色缓存glColorMask(0, 0, 0, 0);2. 启用深度测试glEnable(GL_DEPTH_TEST);glDepthFunc (GL_LESS);3. 以多边形填充模式绘制对象,要使用多边形偏移(Pass1)glPolygonMode (GL_FRONT_AND_BACK, GL_FILL);glPolygonOf...

weixin_39855944的博客 264

Polygon Offset 使用方法

由于工作中经常遇到画线与画几何体并存的问题,这个时候,就会遇到下面的现象: 1,Stitching EffectZ-Fighting Effect 这个时候可以使用Polygon Offset来处理: 它有三种值可以设置,每种针对一个渲染方式: line, point , fill 模式, 如OPenGL下( GL_POINT, GL_LINE and GL_FILL), 对就在的开启函数如下: ...

大白的博客 4457

OpenGL】十九、OpenGL 绘制模式 ( 绘制线框模式 | 绘制点模式 )

一、绘制线框模式、 二、绘制点模式、 三、绘制点模式 ( 圆点 )、 四、相关资源

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 7693

OpenGL(二十一) glPolygonOffset设置深度偏移解决z-fighting闪烁问题

开启深度测试OpenGL会再去绘制模型被遮挡的部分,这样实现的显示画面更为真实,但是由于深度缓冲区精度的限制,对于深度相差非常小的情况(例如在同一平面上进行两次绘制),OpenGL能正确判定两者的深度值,会导致深度测试的结果可预测,显示出来的现象时交错闪烁的前后两个画面,这种情况称为z-fighting,在旋转(深度值发生变化)的情况下表现的更为明显,如下图所示:

牧野的博客 1万+

OpenGL之深度缓冲区与Z-Buffer消隐算法

opengl 图形流水线。

TxyITxs的博客 2675
上一篇: 使用OpenGL实现三维坐标的鼠标拣选
下一篇: 一个扑克牌网络游戏的例子(C++)
Y___Y
博客等级 码龄20年 63粉丝 61原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值