opengl绘图模式问题

jsfserver 2012-02-24 01:10:43
看到很多资料上提到:
OpenGL的绘制过程多种多样,内容非常丰富,主要提供以下几种对三维物体的绘制方式:

(1) 线框绘制方式(Wire frame):绘制三维物体的网格轮廓线。

(2) 深度优先线框绘制方式(Depth cued):采用线框方式绘图,使远处的物体比近处的物体暗一些,以模拟人眼看物体的效果。

(3) 反走样线框绘制方式(Antialiased):采用线框方式绘图,绘制时采用反走样技术,以减少图形线条的参差不齐。

(4) 平面明暗处理方式(Flat shading):对模型的平面单元按光照进行着色,但不进行光滑处理。

(5) 光滑明暗处理方式(Smooth shading):对模型按光照绘制的过程进行光滑处理,这种方式更接近于现实。

(6) 加阴影和纹理的方式(Shadow and Texture):在模型表面贴上纹理甚至加上光照阴影效果,使三维场景像照片一样逼真。

(7) 运动模糊绘制方式(Motion blured):模拟物体运动时人眼观察所觉察到的动感模糊现象。

(8) 大气环境效果(Atmosphere effects):在三维场景中加入雾等大气环境效果,使人有身临其境之感。

(9) 深度域效果(Depth of effects):类似于照相机镜头效果,模拟在聚焦点处清晰。

我的问题是如何切换到或者调用这些模式?有什么函数调用了,就可以实现这些模式?
...全文
141 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
吾子墨鸿 2012-02-24
  • 打赏
  • 举报
回复
你这个问题很广泛,建议看书籍《OpenGL编程指南》
jsfserver 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dizuo 的回复:]
状态机的理解就是 你开启某个状态,直到下一次修改之前 opengl将一直保持当前状态。
没有显式设置的状态,opengl有默认状态。
[/Quote]
那么这个状态用哪个函数,具体参数是多少?能帮我找一下吗?
ryfdizuo 2012-02-24
  • 打赏
  • 举报
回复
状态机的理解就是 你开启某个状态,直到下一次修改之前 opengl将一直保持当前状态。
没有显式设置的状态,opengl有默认状态。
ryfdizuo 2012-02-24
  • 打赏
  • 举报
回复
opengl本身是一个状态机,你可以通过glEnable指令开启和关闭这些状态。
jsfserver 2012-02-24
  • 打赏
  • 举报
回复
glshadeModel--选择平面明暗模式或光滑明暗模式
glPolygonMode--选择多边形光栅化模式

可以用glPolygonMode()搭配参数GL_LINE检视模型网格的架构

那么除了这两种之外,其他的怎么实现呢?也是有类似于glshadeModel这样的函数,还是完全自己来实现?
flyrack 2012-02-24
  • 打赏
  • 举报
回复
OpenGL包含很多东西的 光照、粒子效果、雾化、纹理
要把楼主的所有内容都讲一遍的话就是整本书了

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧