zoukankan      html  css  js  c++  java
  • 学习游戏编程基础4:预习3D游戏基本概念

      

      材质和纹理的区别,比如说一件衣服,前者就像是材料,一眼望去就判断出是棉制品的还是丝织品,后者则相当于装饰,比如商标图案,代表是A品牌还是B品牌。总之3D世界里面,3个顶点构成一个三角形,作为最简单的几何图形,它能构成任何你想要的东东。称之为网格,根据上图的过程,经过D3D的渲染,最后你就能在屏幕上看到一个3D世界了。

      接下来我们从一个简单的绘制三角形的例子来分析D3D在其中做了哪些处理。

      

      对D3D11中的渲染管线的理解:

      为何叫渲染管线,翻译而来就是这样叫的,但实际上语义跟工厂的生产流水线差不多,都是分为好几个阶段,相互之间互不干扰,保证数据高效的被执行。

      1:input assembler 输入装配器 把几何信息输入给D3D,包括点 线 三角形等,主要是指定基本图元拓扑类型和顶点、索引信息加以完成。

      2:vertex shader 顶点着色(渲染) 完全可编程,由程序员编写,核心为顶点在不同空间坐标系的变化。即模型空间->世界空间->观察空间->投影空间。通过矩阵实现.

      3:hull shader 外壳着色 可选 把顶点着色器的输出当作自己的输入数据

      4:  tessellator 曲面细分 可选 从硬件上对几何图形进行细分操作 如移位贴图

      5:domain shader 区域着色 可选 负责在细分区域产生顶点

      6:  geometry shader 几何着色 可选 对整个几何体操作 如体积阴影 粒子效果

      7:  rasterizer 光栅 投影空间->屏幕空间 对多边形进行剪裁 剔除 设定像素着色 计算插值,即顶点之间的数据,范围是屏幕空间区域的多边形每个像素属性。

      8:  pixel shader 像素着色 接受插值数据,计算投影到屏幕空间的区域的像素着色计算,输出最终的颜色值

      9: output merger 输出合并

      一:图形几何知识

    三,渲染管线

    clipping---裁剪:根据视角视口选择可见的几何图形
    culling---拣选:将物体背面不可见部分挑出不渲染
    index---索引
    projection---投影
    Rasterization---光栅化
    triangle---三角形
    transform---转换
    vertex---顶点
    stream---流
    source---资源
    Primitive---原始管线
    rotation---旋转

    四:灯光材质

    Ambient---环境
    Directional---方向光
    Diffuse---漫(反射)
    Reflection---(漫)反射
    Specular---镜面
    spot---聚光灯
    Emissive---自发光

    五:其他

    Bounding---包围
    Blending---混合
    Filter---过滤
    mask---掩码
    Texture---纹理
    Strafing---扫射状平移
    Shader---着色
    Terrain---地形

    一:几何知识。
    1:向量及其概念,运算
    2:矩阵及其概念,运算
    3:平面,射线概念,意义

    二:D3D基础
    1:D3D原理,COM原理,顶点处理类型,内存池,页面交换原理。
    2:固定渲染管线原理。本地空间-世界空间-视图空间-背面拣选-光照-裁剪-投影-视口变换-光栅化
    3:顶点/索引
    4:色彩
    5:灯光/材质/光源/顶点法线
    6:纹理/纹理寻址/纹理过滤/Mipmaps原理
    7:Alpha混合/Alpha测试
    8:深度缓存/模板缓存


    三:D3D进阶
    1:2D字体文本/3D字体文本(FPS)
    2:Mesh网格模型/绘制/优化/创建
    3:渐进网格/包围体
    4:灵活摄象机/PitchYawRoll/WalkingStrafingFlying
    5:地形/高度图/纹理光照处理
    6:粒子系统/点精灵渲染状态及属性
    7:拾取射线/投影窗口/input拾取/碰状检测
    8:骨骼矩阵/动态蒙皮
    9:高级着色语言HLSL/顶点着色器/象素着色器

    四:高级专业部分
    1:卡通渲染
    2:雾化
    3:逐象素光照
    4:BSP/四叉树+禁忌算法的场景管理
    5:SkyBox渲染技巧
    6:多流
    7:动态模糊技术

  • 相关阅读:
    Lua脚本语法说明(修订)
    C++ 程序文档生成器介绍(doxygen)
    [转]最快速度找到内存泄漏
    MyEclipse 8.5下安装tomcat插件
    Linux解压rar文件(unrar安装和使用,分卷解压)
    禁止root用户远程登录或者禁止其他用户登录而不删除它
    linux配置IP的方法
    log4j xml配置详解
    Sqlldr使用介绍
    Linux查看CPU和内存使用情况
  • 原文地址:https://www.cnblogs.com/gameNote/p/3565205.html
Copyright © 2011-2022 走看看