shader里的uv是什么

2023-10-31

shader里的uv是什么

前言

先看一段shadertoy大牛写的代码

vec3 getPixel(in vec2 coord, float time) {    
    vec2 uv = coord / iResolution.xy;
    uv = uv * 2.0 - 1.0;
    uv.x *= iResolution.x / iResolution.y;    
        
    // ray
    vec3 ang = vec3(sin(time*3.0)*0.1,sin(time)*0.2+0.3,time);    
    vec3 ori = vec3(0.0,3.5,time*5.0);
    vec3 dir = normalize(vec3(uv.xy,-2.0)); dir.z += length(uv) * 0.14;
    dir = normalize(dir) * fromEuler(ang);
    
    // tracing
    vec3 p;
    heightMapTracing(ori,dir,p);
    vec3 dist = p - ori;
    vec3 n = getNormal(p, dot(dist,dist) * EPSILON_NRM);
    vec3 light = normalize(vec3(0.0,1.0,0.8)); 
             
    // color
    return mix(
        getSkyColor(dir),
        getSeaColor(p,n,light,dir,dist),
    	pow(smoothstep(0.0,-0.02,dir.y),0.2));
}
vec2 uv = coord / iResolution.xy;

详解

这里的 uv代表什么意思呢?
其实应该是UVW(因为XYZ已经用过了,所以另选三个字母表示)。U和V分别是图片在显示器水平、垂直方向上的坐标,取值一般都是0~1,也 就是(水平方向的第U个像素/图片宽度,垂直方向的第V个像素/图片高度)

UV” 这里是指u,v纹理贴图坐标的简称(它和空间模型的X, Y, Z轴是类似的). 它定义了图片上每个点的位置的信息.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shader里的uv是什么 的相关文章

  • Chrome自动运行Js去广告,利用插件网页自动运行Js脚本,油猴去广告教程【去处指定部位的广告】

    免自写代码去除广告 点击即可安装 点此去向去除广告的油猴脚本 以下是教学如何自己写油猴脚本删除指定广告的 目的页面 https m dmzj com view 33353 61162 html 可以看到由这两个网页元素组成了网页广告 一个灰
  • keras和tensorflow的匹配版本

    keras和tensorflow版本之间的匹配是非常重要的 因为它们之间的兼容性可能存在一些问题 以下是一些keras和tensorflow之间的匹配版本 tensorflow 1 x keras是tensorflow 1 x的一部分 可以
  • git Tag标签/Android studio git创建与删除标签(Tag)

    fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff一
  • unity3d 脚本参考-技术文档

    unity3d 脚本参考 技术文档 核心提示 一 脚本概览这是一个关于Unity内部脚本如何工作的简单概览 Unity内部的脚本 是通过附加自定义脚本对象到游戏物体组成的 在脚本对象内部不同志的函数被特定的事件调用 最常用的列在下面 Upd
  • 用ue5写一个根据数据更换标签图片的蓝图

    在 Unreal Engine 5 UE5 中 您可以使用蓝图来实现根据数据更换标签图片的功能 以下是一个示例蓝图 其中包含了您可能需要使用的各种节点 首先 您需要获取数据 例如使用 变量 节点获取变量或使用 从全局变量获取 节点获取全局变
  • arduino-esp32-cam环境配置和例程使用

    如果想要深度开发 请使用esp idf开发 自由度更高 同时也比较复杂 我的主要目的是模块到手后快速上手评测 检查模块是否可以使用 一 硬件准备 1 aithinker esp32 cam模块一个 2 usb转串口模块 比如ch340 cp
  • Ubuntu linux 手动编译安装 Realtek 8852 无线网卡驱动 非常简单 添加Manjaro教程

    由于8852是刚出的支持wifi6的无线网卡 因此只有Windows驱动 而Linux 用只能自己编译驱动 好在不麻烦 本驱动置只支持5 4及以上内核 请确认 安装必要工具 sudo apt get update sudo apt get
  • np.mgrid的含义及reshape(2,-1)等

    np mgrid的含义及reshape 2 1 等 np mgrid np mgrid 介于网上很多教程只是单纯说用法 而对其意思解释不清楚 因此写了该释义 np mgrid中含有grid 网格 顾名思义 功效与网格相关 先看官方解释 废话
  • Linux查看系统基本信息,版本信息(最全版)

    Linux下如何查看版本信息 包括位数 版本信息以及CPU内核信息 CPU具体型号 1 uname a Linux查看版本当前操作系统内核信息 2 cat proc version Linux查看当前操作系统版本信息 3 cat etc i
  • oss文件上传与下载

    上传 如何使用流式上传和文件上传方式上传文件 对象存储 OSS 阿里云 package com vazyme kf client aliyun oss manager import com aliyun oss ClientExceptio
  • 01-----YUV各种格式的详解

    一 YUV格式 有两大类 planar和packed YUV格式 粗分有两大类 planar和packed 细分有三大类 分别是planar和packed 再加上semi Planar 半平面格式 1 对于planar的YUV格式 先连续存
  • spark启动流程1

    1 standalone模式 1 Driver端启动SparkSubmit进程 启动后开始向Master进行通信 此时创建了一个对象 SparkContext 接着向Master发送任务消息 2 Master接收到任务信息后 开始资源调度
  • WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

    WARNINGL16 UNCALLEDSEGMENT IGNOREDFOROVERLAYPROCESS SEGMENT PR COMPARE TESTLCD 说明 程序中有些函数例如COMPARE 或片段 以前 调试过程中 从未被调用过 或

随机推荐

  • 算法设计与分析期末复习题

    算法分析与设计 期末复习题 一 选择题 1 应用Johnson法则的流水作业调度采用的算法是 D A 贪心算法 B 分支限界法 C 分治法 D 动态规划算法 2 Hanoi塔问题如下图所示 现要求将塔座A上的的所有圆盘移到塔座B上 并仍按同
  • Python3,5行代码,生成自动排序动图,这操作不比Excel香?

    5行代码生成自动排序动图 1 引言 2 代码实战 2 1 pynimate介绍 2 2 pynimate安装 2 3 代码示例 3 总结 1 引言 小屌丝 鱼哥 听说你的excel段位又提升了 小鱼 你这是疑问的语气 小屌丝 没有 吧 小鱼
  • sql 语法总结

    select case when ThamesWorld then 9999999 如果为空 替换成对应的数组 when CHARINDEX ThamesWorld gt 0 then LEFT ThamesWorld charindex
  • Vue报错: did you register the component correctly? For .., make sure to provide the "name" option(已解决)

    问题 did you register the component correctly For recursive components make sure to provid the name option 在做项目的时候 引入其他组件时
  • 【牛客刷题专栏】0x30:JZ38 字符串的排列(C语言编程题)

    前言 个人推荐在牛客网刷题 点击可以跳转 它登陆后会保存刷题记录进度 重新登录时写过的题目代码不会丢失 个人刷题练习系列专栏 个人CSDN牛客刷题专栏 题目来自 牛客 题库 在线编程 剑指offer 目录 前言 问题描述 解法思路 代码结果
  • Colaboratory使用Tensorboard

    Colaboratory是一个好用的工具 那么自然也会提供了扩展支持 添加Tensorboard的callback 然后使用tensorboard的命令启动生成的文件 load ext tensorboard tensorboard log
  • Python-类中的变量和方法

    类对象是一组相关的数据信息 属性 以及针对这组数据信息的操作 函数 的集合 实例属性 用self修饰的属性为实例属性 这些属性通常是某个对象的属性 如一个人的名字 class Student def init self name self
  • 完美解决Typora行距问题

    文章目录 一 步骤 1 启动开发者工具 2 通过开发者工具找到需要修改的css文件位置 3 将这个位置的数字直接修改为0 总结 一 步骤 1 启动开发者工具 2 通过开发者工具找到需要修改的css文件位置 3 将这个位置的数字直接修改为0
  • oracle使用rowid和for update修改数据的区别

    在oracle进行测试数据修改时 有时为了简单方便 不想使用update语句来进行修改 于是可以使用rowid和for update来进行数据操作 sql例子如下 select s rowid from student select fro
  • 通过深度学习偏微分方程模型估计剩余使用寿命:使用潜变量的 退化的动力学解释框架/PINN 在发动机寿命预测的应用 文献总结和内容概要

    PINN 在发动机寿命预测的应用 文献总结 内容概要 一 引言 二 物理信息神经网络PINN 三 本文所提出的框架 3 1当前DL PHM所面临的三个问题 3 2 本文相应的解决方案 3 3 DNN框架 3 4 所提框架的优势 3 4 1网
  • 1、Canopen 轻松入门

    Canopen 轻松入门 笔记 1 Canopen在ISO层级中的位置 2 CANopen 的预定义报文 ID 分类 2 1 网络管理 NMT 与特殊协议 Special protocols 报文 ID 分类 2 2 过程数据对象 PDO
  • Unity SteamVR 2.x UGUI射线交互 +物品射线点击+物品抓起(超级简单)

    刚开始先查看了其他道友的方案 1 Unity使用SteamVR2 0实现基本功能 瞬移 抓取物品 射线点击 UI交互等 贪小心的博客 CSDN博客 unity steam vr 2 Steam VR 2 0 5 射线操作UGUI 射线点击物
  • gcc/g++搜索路径

    一 查看gcc g 默认include路径 1 gcc print prog name cc1plus v 2 g print prog name cc1plus v 3 echo main gcc E v 二 include搜索路径 1
  • 论文笔记:Mind the Gap An Experimental Evaluation of Imputation ofMissing Values Techniques in TimeSeries

    pVLDB 2020 1 abstract intro 这篇论文横向比较了12种 time series imputation的方法 作者声称这是第一篇深入讨论这些模型的准确度 效率和参数化 由于不同的方法使用的编程语言不同 作者用C 重新
  • 786. 第k个数

    文章目录 Question Ideas Code Question 给定一个长度为 n 的整数数列 以及一个整数 k 请用快速选择算法求出数列从小到大排序后的第 k 个数 输入格式 第一行包含两个整数 n 和 k 第二行包含 n 个整数 所
  • Jetbrains开发者日见闻(三)之Kotlin1.3新特性(inline class篇)

    简述 上接上篇文章 我们深入分析了Kotlin1 3版本中的Contract契约的内容 那么这篇文章将会继续把Kotlin1 3新特性研究完毕 这篇文章还有个非常重要的点就是inline class 内联类 关于内联类的知识除了这篇文章会有
  • [PPPOE]报文交互分析

    1 简介 PPPoE PPP Over Ethernet 协议是在点到点链路上承载网络层数据包的一种链路层协议 由于它能够提供用户验证 易于扩充 并且支持同 异步通信 因而获得广泛应用 PPPoE主要协议标准 RFC2516 图 PPPOE
  • 字母顺序排序

    这周做题的时候遇到了一些困难 当时一直程序并没有报错但就是不知道哪错了 后来通过问同学 终于知道哪错了 其实有的时候哪怕你多加了一个等于号 而以至于程序达不到你需要的效果 也是有的 所以一定不要让数组运行时少一次 否则有可能到后面就出错了
  • python自动化:系统凭据的获取与添加

    在自动化流程开发中 我们经常会遇到输入帐号 密码的情况 帐号明文还可以 但是密码不想展示给他人 但是不想自己去手动输入怎么办 基于以上情况我们可以使用windows自带的凭据管理器进行密码存储 其实我们经常用的git也存储在这里 首先搜索
  • shader里的uv是什么

    shader里的uv是什么 前言 先看一段shadertoy大牛写的代码 vec3 getPixel in vec2 coord float time vec2 uv coord iResolution xy uv uv 2 0 1 0 u