Lec9 Shading3 (Texture mapping)

本文探讨了图形学中的纹理映射技术,包括重心坐标原理及其应用、纹理贴图的不同问题与解决方案如双线性和三线性插值、Mipmap、各项异性过滤等,并介绍了环境贴图和凹凸贴图等高级应用。

Lec9 Shading3 (Texture mapping)

  • shading 1 & 2
    • Blinn-Phong reflectance model
    • Shading models / frequencies
    • Graphics Pipeline
    • Texture mapping

重心坐标 (Barycentric coordinates)

  • 为了做三角形内插值
    • 得到顶点属性,既能够平滑的从一个顶点过渡到另一个顶点
    • 比如纹理坐标,颜色,法向量等
  • 定义在一个三角形(△ABC\triangle{ABC}ABC​)上
    • 三角形内部任何一个点(x,y)都能够用三个坐标的线性组合来表示
      • $(x,y) = \alpha A + \beta B + \gamma C $
      • α+β+γ=1\alpha + \beta + \gamma = 1α+β+γ=1​ (为了限制该点在三角形所在平面内)
      • α>=0β>=0γ>=0\alpha >=0 \beta>=0 \gamma >= 0α>=0β>=0γ>=0
    • 可以通过内部三角形面积比求出来
      • 在这里插入图片描述

      • 三角形的重心

        • 在这里插入图片描述
      • 任意点

        • 在这里插入图片描述
      • 利用重心坐标做插值

        • 通过这一点的重心坐标,线性插值三个顶点的属性
      • 虽然不错,但是在投影变换下,不能保证重心坐标不变,所以三维物体的属性需要在三维空间中做插值

纹理贴 (Applying Texture)

  • 可以算出三角形对应点的uv,再去纹理上找漫反射系数

  • 可能问题

    • 纹理太小(Texture Magnification)

      • 纹理本身太小,贴图物体分辨率大
      • 高线性插值(Bilinear interpolation)双线性插值
        • 找临近的四个点,线性插值(水平和数值)双线性插值

          • 在这里插入图片描述
        • 质量和其他方法比一般

    • 纹理太大

      • 摩尔纹 & 锯齿 (走样)

      • 单个像素覆盖纹理过多

      • 超采样可以解决(消耗过大)

      • 避免采样

        • 范围查询(平均值)

        • Mipmap (快,近似,只能是正方形)

          • 在这里插入图片描述

          • 知道L后,能确定这个方块在log2Llog_2Llog2L​ 层必然能用一个像素表示

          • Trilinear interpolation

            • 在上两层取周围像素共同做插值,叫三线性插值
          • 但是mipmap在远处可能会完全模糊

        • 各项异性过滤(不同方向表现各不相同)(Ripmaps Filtering)

          • 多了轴向的拉伸与缩小

          • 在这里插入图片描述

          • 对于矩形的查询可以解决

          • 但是斜着的还是解决不了

纹理的其他应用(Texture applications)

  • 什么是纹理
    • 一块GPU上的内存
    • 一块区域可以做点查询,范围查询
    • 就是一块数据
  • 环境贴图 (Environment Map)替换Blinn-Phong模型的漫反射光
    • 把整个环境的光记录下来
    • 用纹理描述环境光长什么样
    • 犹他茶壶(经典模型)
    • 假设
      • 环境光都来自无穷远处
      • 只记录光的方向信息
    • 如果可以描述在一个纹理上,那么就可以来描述信息
    • 可以把环境光存在球上,可以展开
      • 可能会扭曲
    • 存在立方体表面
      • 从球面出发,大到立方体上
      • 环境光记录在立方体的六个面上
  • 凹凸贴图 (Bump Mapping)
    • 在这里插入图片描述

    • 可以记录高度变化(法线变化)

    • 定义复杂纹理,但是不改变几何信息,把任何像素的法线做一个扰动

      • 通过定义不同位置高度与临近位置的高度差来重新计算法线
    • Flatland case

      • 原本法线是向上,如果有凹凸贴图,在任何一个点处,可以通过相邻两个点的高度差除以间隔就能得到该点凹凸贴图的切线方向(2d)

      • 在这里插入图片描述

      • 求出切线方向后,逆时针90度之后就能够得到法线方向,然后做归一化得到法线

      • 得到uv两个方向的后(3d),就能得到3维空间内该点的法线方向

        • 在这里插入图片描述
      • 假设:在局部坐标系中,法线方向永远是(0,0,1),然后计算法线方向后再把它重新计算回到世界坐标

  • 位移贴图(Displacement mapping)
    • 位移贴图会把三角形每个顶点实际做一个位移
    • 凹凸贴图可能在边缘 / 在投影上会露馅
    • 位移贴图可以解决这个问题
    • 需要三角形足够细,顶点间的间隔需要比纹理频率还要高
    • DirectX提供了同态曲面细分
  • 3D纹理
    • 定义噪声函数
  • 纹理还可以记录已经算好的问题
    • 阴影
  • 3D体渲染
    • 核磁共振记录每个点的具体信息
内容概要:本文档详细介绍了基于Cplex求解器的风光制氢合成氨系统优化研究,通过Matlab代码实现对这一复杂可再生能源系统的建模与优化分析。研究聚焦于风能、光伏等可再生能源耦合电解水制氢并进一步合成氨的综合能源系统,重点解决系统在容量配置与运行调度方面的协同优化问题。采用Cplex求解器进行高效的混合整数线性规划(MILP)求解,实现了对系统经济性、能效性、环境可持续性的多目标优化,涵盖设备选型与容量设计、能量流分配、运行策略制定、制氢与合成氨工艺集成等关键技术环节。该研究为高比例可再生能源消纳、绿氢规模化生产及绿色化工转型提供了重要的理论依据与可行的技术路径。; 适合人群:具备电力系统、能源系统、运筹学或化工过程系统工程等相关背景,熟悉Matlab编程与数学建模方法,从事新能源、氢能、综合能源系统、绿色化工等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习并复现高水平学术论文中关于风光制氢合成氨系统的优化模型构建方法;② 掌握利用Cplex求解器解决复杂能源系统混合整数线性规划(MILP)问题的核心技术与实践流程;③ 为自身的科研项目或工程应用提供系统建模、优化算法实现与代码参考的坚实基础。; 阅读建议:学习者应结合所提供的Matlab代码与相关参考文献,深入剖析模型的物理意义、数学推导过程、约束条件的设定逻辑以及目标函数的设计思路,特别关注Cplex与Matlab的接口调用与数据传递机制,并建议通过调整关键参数(如可再生能源出力、设备效率、成本系数等)进行敏感性分析,以全面理解系统优化的内在机理与决策影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值