构建和渲染一个三维图形的基本过程和基础概念

primitiveType(图元类型):

  • 图元是构成图形的基本单元,比如点、线、三角形等。primitiveType 是用来告诉渲染器要用什么样的基本单元来构成你的图形。比如:
    • 用点:绘制散点图。
    • 用线:绘制线框。
    • 用三角形:绘制复杂的表面。
  • vertexCount(顶点个数):
    - 顶点是一个点,通常包含位置信息,还可能有颜色、法线、纹理坐标等信息。vertexCount 就是你这个图形中有多少个点。
  • mBox(渲染区域):
    这是用来描述你要渲染的区域的大小和范围,通常用一个盒子(box)来表示。这个盒子就像一个容器,告诉渲染器在哪块区域内进行绘制。
  • mVertexBuffer(顶点属性缓存):
    这是用来存储每个顶点的数据的,比如:
    • 顶点的位置:在哪里。
    • 顶点的颜色:是什么颜色。
    • 顶点的纹理坐标:对应贴图的哪个部分。
    • 顶点的法线向量:用来计算光照效果。 渲染器会从这个缓存里取数据来绘制图形。
  • mIndexBuffer(顶点索引缓存):
    这个用来优化绘制过程。对于复杂的图形,有很多点会被重复使用,比如绘制一个由多个三角形组成的立方体。mIndexBuffer 存的是这些点的编号(索引),通过索引来重用点数据,减少内存占用。
  • mMaterial(模型材质):
    材质用来定义图形表面看起来是什么样子的,比如:
    • 是金属的还是木头的?
    • 是光滑的还是粗糙的?
    • 会不会反光?
    • 材质决定了图形的视觉效果,是渲染的重要一环。

简单类比

  • 把它想象成搭乐高积木:
    • primitiveType:你决定用什么形状的积木(点、线、三角形)。
    • vertexCount:你需要多少个积木块。
    • mBox:你搭建的区域多大(一个桌子大小)。
    • mVertexBuffer:每个积木的颜色、形状、纹理等信息。
    • mIndexBuffer:告诉你怎么重复使用积木(减少浪费)。
    • mMaterial:决定积木的表面材质,比如看起来像塑料还是木头。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容