zoukankan      html  css  js  c++  java
  • 关于《3D管线导论》这本书

    游戏开发中,计算机图形学是必不可少的东西。许多人也是从接触图形开始而进入游戏行业的。3D管线导论这本书诠释了3D管线的细节。为大家解开了萦绕已久的迷团。

    很多次偶然地看到 《3D pipeline tutorial》(3D管线导论)这本书的推荐。 今天就狠下心来搜索了一下。 下载了一个电子版来瞧瞧。

    发现自己曾经百思不得其解的内容就全在里面。

    这本书介绍了我们的图形应用程序场景中一些常用的方法。

    如:对象遍历,对象移动,摄像机移动,可见对象查询,LOD等。

    而本书的重头戏则在于,他详细地讲述了一个三角形和其纹理等信息,从输入到输出到屏幕所经历的过程。

    先前我就一直在查找这方面的资料,要是自己当初就下了这本书。那多好哇。

    简单列一下3D管线工作流程,这也是许多图形API 如D3D OPENGL大致的工作方式。

    顶点处理阶段

    普通变换:平移,缩放,旋转。

    世界变换:从模型本地坐标系变到世界坐标系。

    观察变换:从世界坐标系变到观察坐标系。

    观察投影:从观察坐标系变换到投影空间。 投影是一个降维的过程。 也就是说,投影便是从3D到2D的过程。

    少量的剔除:(Trivial Accept/Reject Culling)

    背面剔除(也可以在稍后的屏幕空间中做)

    光照

    透视分割(Perspective Divide):转换到裁剪空间中。  

    裁剪(Clipping)

    视口映射:变换到屏幕空间。

    三角形构造阶段

    背面裁剪(也可以在前面的观察空间中的投影变换之前做)。

    Slope/Delta Calculations

    扫描线转换:Scan-Line Conversion

    渲染和光栅化阶段

    着色(Shading)

    纹理映射(Texturing)

    雾化

    ALPHA半透明测试

    深度缓冲测试

    反走样(可选)

    显示

    以上便是一个完整的3D管线必须具备的东西。。 至于各个处理阶段的顺序,在实际的实现方法上会存在一定的差异。

    有兴趣的朋友可以一起来看这本书。 我也会在看完后,写出自己的感受,大家一起交流

  • 相关阅读:
    Oracle面试题目及解答
    java -jar Incompatible argument to function
    plsql 查询到别的用户下面的表
    redis数据类型[string 、list 、 set 、sorted set 、hash]
    redis-cli 常用命令
    js判断浏览器,包括Edge浏览器
    HTMl5的sessionStorage和localStorage
    JS实现密码加密
    sprintf.js
    js-crc32
  • 原文地址:https://www.cnblogs.com/qilinzi/p/1940514.html
Copyright © 2011-2022 走看看