真实感渲染:变换(二维与三维)

大家好~本课程为“真实感渲染”的线上课程,从0开始,介绍相关的图形学算法和数学基础,给出详细的数学推导、伪代码和实现代码,最终带领大家开发出基于物理的渲染器

线上课程资料:

本节课录像回放

加QQ群,获得ppt等资料,与群主交流讨论:106047770

本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章

本课程系列文章可进入索引查看:
真实感渲染系列文章索引

回顾相关课程

  • 什么是矩阵?

为什么要学习本课

  • 3D中物体有哪些变换?
    答:平移、旋转、缩放

  • 演示相关的变换

  • 3D到2D的投影需要进行变换
    image

主问题:什么是2D变换

  • 如何进行缩放?
    image
    image

    • 缩放矩阵是多少?
      答: [xy]=[sx00sy][xy]

    • 如何进行反射?
      image

      • 反射矩阵是多少?
        答: [xy]=[1001][xy]
  • 如何进行旋转?
    image
    默认为绕着原点(0, 0)逆时针旋转

    • 旋转矩阵是多少?
      image
      Rθ=[????]
      答:Rθ=[cosθsinθsinθcosθ]

推导过程如下图所示:

通过变换(1,0)点,可以得到矩阵的A、C值:
image
image
image

同理,通过变换(0,1)点,可以得到矩阵的B、D值

  • 什么是线性变换?
    答:image

  • 缩放和旋转是否属于线性变换?
    答:是

  • 如何进行平移?
    image
    image

    • 它的表达式是什么?
      答:

[xy]=[xy]+[txty]

  • 如何进行平移?
    • 能够得到2D的平移矩阵吗?
      答:不能
    • 平移属于线性变换吗?
      答:不属于

主问题:什么是齐次坐标

为什么要引入“齐次坐标”

  • 如何才能统一缩放、旋转、平移为都使用一个矩阵来变换?
    答:引入齐次坐标

  • 什么是齐次坐标?
    答:image

  • 向量+向量=?
    答:向量

  • 点-点=?
    答:向量

  • 点+向量=?
    答:点

  • [xyw]=?w0
    答:
    [xyw]=2D[xwyw1]

  • 点+点=?
    答:因为相加的结果经过上面的变换后,可变换为点,所以相加的结果为点

  • 用加了齐次坐标的矩阵来表达平移的表达式是什么?
    答:

[xy1]=[10tx01ty001][xy1]=[x+txy+ty1]

主问题:更多的2D变换有哪些

  • 什么是仿射变换?
    答:image

  • 用齐次坐标后如何修改?
    答:image

  • 用齐次坐标后,缩放、旋转、平移的矩阵是什么?
    答:image

  • 什么是逆变换?
    答:image

  • 如何进行组合变换?

    • 如何进行下图的变换?
      image

    答:有两种方式:先位移再旋转和先旋转再位移
    image

变换的顺序对结果有影响!
image

这里应该使用先旋转再位移,表达式为:
image

  • 如何进行组合变换?
    • 如何提高性能?
      答:image

    • 如何绕一个点旋转?
      答:image

    • 表达式是什么?
      答:image

主问题:什么是3D变换

  • 什么是3D的齐次坐标?
    答:image

  • [xyzw]=?w0
    答:
    [xyzw]=3D[xwywzw1]

  • 什么是3D的仿射变换?
    答:

[xyz]=[abcdefghi][xyz]+[txtytz]

  • 用齐次坐标后如何修改?
    答:

[xyz1]=[abctxdeftyghitz0001][xyz1]

总结

  • 请总结本节课的内容?
  • 请回答开始的问题?

参考资料

扩展阅读

posted @   杨元超  阅读(83)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2014-12-09 提炼游戏引擎系列:初步设计引擎
点击右上角即可分享
微信分享提示