当前位置: 首页 > news >正文

TA学习之路——1.5纹理基础

1.纹理是什么?

宏观上来讲是一张图片
微观上来讲是一种可供着色器读写的结构化存储形式

imgage[Height][Width]

使用纹理的好处```
通过牺牲几何细节,使

1.建模工作量降低
2.存储空间减低
3.读取速度提高

2.纹理管线

object space location
parameter space coordinates
texture space location
texture value
transformed texture value
Start
projector function
coordinates function
obtain value
value transform function
Stop

模型空间->投影函数->纹理映射->纹理坐标->通讯函数->新纹理坐标->纹理采样(避免依赖纹理读取)->纹理值
在这里插入图片描述

3.纹理采样设置之Wrap Mode

决定UV值再[0,1]以外的表现
在这里插入图片描述

3.1 Repeat算法原理与实现

核心原理:纹理坐标通常归一化为 [0,1] 范围。重复算法通过取模运算将超出范围的坐标映射回有效区间,实现无缝平铺。
u r e a p e a t = u − ∣ u ∣ v r e a p e a t = v − ∣ v ∣ u _{reapeat} = u - |u| \\ v _{reapeat} =v- |v| \\ ureapeat=uuvreapeat=vv
其中u,v是原始纹理坐标,结果值始终在 [0,1]范围内。

Csharp代码:

internal class TextureRepeat
{
   
    /// <summary>
    /// 实现纹理坐标的重复平铺
    /// </summary>
    /// <param name="u">原始U坐标</param>
    /// <param name="v">原始V坐标</param>
    /// <param name="tileCount">平铺次数(默认为1,即不缩放)</param>
    /// <returns>处理后的UV坐标</returns>
    public static (float u, float v) RepeatUV(float u, float v, float tileCount = 1f)
    {
   
        // 缩放坐标以实现平铺次数
        u *= tileCount;
        v *= tileCount;

        // 使用取模运算确保坐标在[0,1)范围
        return (
            u - MathF.Floor(u),  // 等效于 u % 1.0
            v - MathF.Floor(v)   // 支持正负坐标自动循环
        );
    }

}

测试验证代码:

var uv1 = TextureRepeat.RepeatUV(1.3f, -0.2f);
Console.WriteLine($"Input (1.3, -0.2) → Output {
     uv1}"); // (0.3, 0.8)

var uv2 = TextureRepeat.RepeatUV(2.5f, 3.7f, 2f); // 平铺2次
Console.WriteLine($"Tiled (2.5,3.7)x2 → {
     uv2}"); // (0, 0.4)

3.2 Mirror算法原理与实现

纹理镜像(Mirror)是一种纹理寻址模式,通过对称翻转的方式平铺纹理,使相邻区域的纹理呈现镜像对称效果。与简单的重复(Repeat)不同,镜像模式在超出 [0,1] 范围的坐标处对纹理进行交替翻转,常用于消除单调重复感并保持视觉连续性。
核心原理
坐标映射规则:通过判断坐标的整数部分是否为奇数,决定是否翻转坐标。

相关文章:

  • 人工智能基础知识详解:从概念到前沿技术与应用
  • RAG中构建个人知识库
  • 第3课:MCP协议接口定义与开发实践
  • 医学图像分割效率大幅提升!U-Net架构升级,助力精度提升5%!
  • iPaaS集成平台使用的最佳实践:开发、测试和生产部署
  • rhcsa第三次作业
  • 解释 Git 的基本概念和使用方式
  • ZLMediaKit部署与配置
  • 【嵌入式系统设计师】知识点:第4章 嵌入式系统软件基础知识
  • 刷题(删除倒数第N个节点、搜索插入位置、二进制求和、求x平方根、爬楼梯)
  • 如何在 Windows 11 上查找计算机的 IP 地址?
  • 理解 Rust 中的 String 分配机制
  • 【Vue-组件】学习笔记
  • AI烘焙大赛中的算法:理解PPO、GRPO与DPO的罪简单的方式
  • NVR接入录像回放平台用EasyCVR打造地下车库安防:大型商居安全优选方案
  • Windows 图形显示驱动开发-WDDM 2.0功能_重排范围
  • 阿里云大模型训练与推理开发
  • 关于点卷积
  • 利用Ollama对AI大模型进行攻击
  • vue3 处理文字 根据文字单独添加class
  • 注册域名哪个网站好/日本关键词热搜榜
  • 英文网站模板源代码/google网站登录入口
  • 网站建设禁止性规定/竞价系统
  • 松江区做网站的公司/免费大数据网站
  • 网站如何分页/免费引流推广怎么做
  • 如何做b2b网站信息/网络测试