解释基本的3D理论

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景

坐标系

3D 本质上是关于 3D 空间中形状的表示,并使用坐标系来计算它们的位置。

WebGL 使用右侧坐标系 --- 轴指向右侧,轴指向上方,轴指向屏幕外,如上图所示。x``y``z

对象

使用顶点构建不同类型的对象。顶点是空间中的一个点,在坐标系中具有自己的 3D 位置,通常是定义它的一些附加信息。每个顶点都由以下属性描述:

  • 位置 :在 3D 空间中标识它 (、、)。x``y``z
  • 颜色 :保存 RGBA 值(R、G 和 B 表示红色、绿色和蓝色通道,alpha 表示透明度 --- 所有值的范围从 到 )。0.0``1.0
  • **正常:**一种描述顶点朝向的方法。
  • 纹理:顶点可用于装饰其所属表面的 2D 图像,而不是简单的颜色。

您可以使用此信息构建几何图形 --- 下面是一个立方体示例:

给定形状的面是顶点之间的平面。例如,立方体有 8 个不同的顶点(空间中的点)和 6 个不同的面,每个面由 4 个顶点构成。法线定义面部的方向。此外,通过连接点,我们正在创建立方体的边缘。几何体是从顶点和面构建的,而材质是纹理,它使用颜色或图像。如果我们将几何体与材料连接起来,我们将得到一个网格。

渲染管线

渲染管线是准备图像并将其输出到屏幕上的过程。图形渲染管道采用从使用顶点 描述的基元 构建的 3D 对象,应用处理,计算片段 并将其作为像素在 2D 屏幕上呈现。

上图中使用的术语如下:

  • 基元:管道的输入 --- 它由顶点构建,可以是三角形、点或线。
  • 片段:像素的 3D 投影,具有与像素相同的所有属性。
  • 像素:屏幕上排列在 2D 网格中的点,具有 RGBA 颜色。

顶点和片段处理是可编程的 --- 您可以编写自己的着色器来操作输出。

顶点处理

顶点处理是将有关各个顶点的信息组合成基元,并在 3D 空间中设置它们的坐标以供查看者查看。这就像拍摄您准备的给定风景的照片一样 - 您必须首先放置对象,配置相机,然后拍摄。

这种处理有四个阶段:第一个阶段涉及排列世界中的对象,称为模型转换 。然后是视图转换,负责在3D空间中定位和设置相机的方向。摄像机有三个参数 - 位置、方向和方向 - 必须为新创建的场景定义。

然后,投影 变换(也称为透视变换)定义相机设置。它设置了摄像机可以看到的内容------配置包括视野纵横比 和可选的近平面远平面。阅读三.js文章中的相机段落以了解这些内容。

最后一步是视口转换,它涉及输出渲染管线中下一步的所有内容。

光栅化

栅格化将基元(连接的折点)转换为一组片段。

这些片段(即 3D 像素的 2D 投影)与像素网格对齐,因此最终它们可以在输出合并阶段作为像素打印在 2D 屏幕显示器上。

片段处理

片段处理侧重于纹理和照明------它根据给定的参数计算最终颜色。

纹理

纹理是在 2D 空间中使用的 3D 图像,用于使对象看起来更好、更逼真。纹理由称为纹素的单个纹理元素组合而成,就像图片元素从像素组合一样。在渲染管线的片段处理阶段将纹理应用于对象,允许我们在必要时通过包装和过滤来调整它。

纹理包装允许我们在 2D 对象周围重复 3D 图像。当原始分辨率或纹理图像与显示的片段不同时,将应用纹理过滤 - 它将相应地缩小或放大。

照明

我们在屏幕上看到的颜色是光源与物体材质的表面颜色相互作用的结果。光可能会被吸收或反射。在WebGL中实现的标准Phong照明模型有四种基本类型的照明:

  • 漫反射:遥远的定向光,如太阳。
  • 镜面反射:一个光点,就像房间里的灯泡或手电筒一样。
  • 环境:常光应用于场景中的所有内容。
  • 自发光:物体直接发出的光。

输出合并

在输出操作阶段,来自 3D 空间的所有基元片段都转换为像素的 2D 网格,然后在屏幕显示器上打印出来。

在输出合并期间,还会应用一些处理来忽略不需要的信息 - 例如,不会计算屏幕外部或其他对象后面的对象的参数,因此不可见。

原文链接:解释基本的3D理论 (mvrlink.com)

相关推荐
多恩Stone9 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
多恩Stone9 天前
【3D-AICG 系列-15】Trellis 2 的 O-voxel Shape: Flexible Dual Grid 代码与论文对应
人工智能·python·算法·3d·aigc
在下胡三汉9 天前
为什么“资产土地”标准化主资产的 glTF、glb格式模型,为什么非常流行
3d
2401_863801469 天前
3DTiles(.b3dm,i3dm,cmpt) 数据转换fbx转obj转max转su,cesium格式模型转换
3d
3Dmax效果图渲染研习社9 天前
2026年3ds Max云渲染平台哪个好?
3d
思茂信息10 天前
基于CST 3D Combined功能的以太网口RE仿真
开发语言·javascript·单片机·嵌入式硬件·matlab·3d
CG_MAGIC10 天前
Maya 角色绑定:控制器搭建与 IK/FK 切换
3d·贴图·maya·渲云渲染
PHOSKEY10 天前
光子精密3D工业相机陶瓷基片平面度检测!赋能电子制造质控升级
平面·3d·3d工业相机
twe775825810 天前
用3D动画揭示技术路线的多样性
科技·3d·制造·动画