【问题标题】:What's texture space and screen space in rendering pipeline?渲染管道中的纹理空间和屏幕空间是什么?
【发布时间】:2018-02-13 10:52:23
【问题描述】:

在解决 3d 渲染管道中的高级照明时,谁能解释“纹理空间”和“屏幕空间”的区别?我是着色器的新手。提前谢谢!

【问题讨论】:

  • 酷,我不知道Nico在中国也被用作名字!!
  • 哦,这是我的英文名。
  • 这是一个奇怪的名字。一个和我一起做一个项目的美国人曾经问我“他们为什么叫你 Nico?”因为他认为这不是一个真实的名字。 :D
  • 不是真名?好伤心。我不熟悉命名规则,所以我只是为了方便起见。很难选择一个英文名,以便有人可以轻松地将您的英文名与您的中文名联系起来。
  • 我不知道它是否会有所帮助,但是当您处理纹理时,例如,如果您有法线贴图。您定义的每个法线都来自“2d 空间”,例如向您走来。现在在世界空间中,您的纹理已附加到 3D 网格,每个法线都根据其附加的顶点而发生变化。看到这个很好的教程opengl-tutorial.org/intermediate-tutorials/…

标签: directx shader render lighting render-to-texture


【解决方案1】:

据我所知,U、V坐标系中的纹理空间为: (0.0, 0.0) 表示左下角,(1.0, 1.0) 表示要采样的纹理的右上角。

屏幕空间是一样的,但它是左上角的 (-0.5, 0.5) 和渲染目标纹理的右下角 (0.5, -0.5) (0 0 现在在中心),但它被转换了通过投影矩阵,无论是透视还是正交,例如,对于具有 800x600 打开窗口的 2d 游戏,它可以是 (-400, 300) 到 (400, -300),因此您可以精确地操作像素。

**

实际上在 DirectX 11 纹理空间中 (0, 0) 表示纹理的左上角

屏幕空间似乎是 (-1, 1) 用于左上角,(1, -1) 用于机器人右侧。

但想法是一样的。

【讨论】:

  • 谢谢,对我有帮助。
猜你喜欢
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
相关资源
最近更新 更多