【Unity3D】ASE制作天空盒

找到官方shader并分析

  1. 下载对应资源包
  2. 找到\DefaultResourcesExtra\Skybox-Cubed.shader
  3. 找到\CGIncludes\UnityCG.cginc
  4. 观察变量, 观察tag, 观察代码

需要注意的内容

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

ASE要处理的内容

在这里插入图片描述

在这里插入图片描述

核心修改

添加一个Custom Expression节点

code内容为:

return DecodeHDR(In0, In1);

output type 设置为 float3

input 设置为两个float4

操作

把cube的采样的节点输入进来,即可,使用hdri的天空盒子了

解释

使用了UnityCG.cginc文件中的decodehdr函数, 从而可以使用, 官方也是使用了这个函数才可以使用的.但是这个函数不在官方api中, 所以只能通过自定义的方式来处理.

关于ASE节点 Amplify Shader Editor/Custom Expression的说明

Node Parameter描述
Name自定义表达式名称。它将用于在内部命名生成的变量或函数。
Mode确定如何使用放置在“代码”文本区域上的代码。
Create: 放置在编码区域上方并连接到输入的结果将直接分配给输出端口
Call: 放置在代码区域上的指令内联放置在着色器主体上,并且不会分配给任何内容。这对于调用在着色器的另一部分或包含的 cginc 上声明的函数特别有用。
在呼叫模式处于活动状态时,将添加一个特殊的输入端口 In,该端口充当中继器,将连接到它的内容直接传递到节点输出端口。
文件:可以将.cginc/.hlsl 文件拖放到新的“源”字段中,并自动将其作为 #include包含在着色器中。函数调用使用在 Name 上设置的值,后跟在创建的输入端口上设置的值。
Available only on File Mode
Source要包含的库文本文件
Precision Suffix如果打开,它会自动向函数调用添加精度后缀。( 将_float或_half添加到函数调用 p.e MyFunctionCall_float())
Default Parameters
Precision声明节点内部变量时使用的精度。
定义变量可以容纳的字节数,从而有效地定义值的精确度。它的用处是由必要的硬件规格绑定的。最低精度稍快,但可能会产生错误和伪影。
Float: 最高精度,适用于值可能非常高或非常低的值(即:位置、坐标等)
Half: 在大多数情况下,中等精度与 Float 一样好,但精度只有其一半
Inherit: 对主节点属性使用全局精度集
Code写入自定义表达式或函数的文本区域。创建函数或自定义表达式,具体取决于其正文是否包含 return 语句。
Set Unique如果打开,则会在函数/变量名称后附加一个唯一 ID。这允许不同的自定义表达式具有相同的名称。
例如,如果用户希望通过自定义表达式生成函数并由其他人使用,则应将其关闭以保持原始名称。
Auto-Register即使与输出节点不存在连接,也可以注册由自定义表达式生成的函数。
Output Type新创建的表达式的变量类型或新创建的函数的返回类型。仅当呼叫模式关闭时可见。
Dependencies允许用户选择它所依赖的其他自定义表达式,以确保首先写入它们。
Inputs允许添加 (+)或删除 (-) 输入端口。输入端口可以通过直接调用其名称在代码区域内使用。
Qualifier指定函数模式下当前输入参数的类型限定符。在此模式下,将创建一个函数,并使用其分配的限定符将每个输入端口设置为函数输入参数。
In - 调用函数时,分配给参数的值将被复制到参数中。它可以在功能内部进行修改,因为它不会影响原始功能。
Out - 函数调用方未初始化的值。该函数负责初始化此参数,所有更改都在上面完成,如果它也会被复制到函数调用时设置的原始变量中。
InOut - 结合以前的限定符,值将设置为函数调用传递的限定符,但在函数体中对它所做的所有更改都将复制到原始限定符中。
Precision用于为此输入端口创建的局部变量的精度。
定义变量可以容纳的字节数,从而有效地定义值的精确度。它的用处是由必要的硬件规格绑定的。最低精度稍快,但可能会产生错误和伪影。
Float: 最高精度,适用于值可能非常高或非常低的值(即:位置、坐标等)
Half: 在大多数情况下,中等精度与 Float 一样好,但精度只有其一半
Inherit Local: 对节点属性使用全局精度集
TypeData Type for the input port
int - Int data type
float - Float data type
float2 - Vector2 data type
float3 - Vector3 data type
float4 - Vector4 data type
float3x3 - Matrix3x3 data type
float4x4 - Matrix4x4 data type
sampler1D - Sampler1D data type
sampler2D - Sampler2D data type
sampler3D - Sampler3D data type
samplerCUBE - SamplerCUBE data type
Name输入名称,在内部也用作变量或函数参数名称。
Value输入电流值。仅当相应的输入端口未连接时才可见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/483675.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.7 Verilog 循环语句

关键词:while, for, repeat, forever Verilog 循环语句有 4 种类型,分别是 while,for,repeat,和 forever 循环。循环语句只能在 always 或 initial 块中使用,但可以包含延迟表达式。 while 循环 while 循…

关于dxf文件中,多段线凸度的计算

1.前言 在前面的CAD中的dxf文件解析(二)中讲到了一些CAD的dxf文件解析点、线、圆弧、圆、块等的思路。下面提供链接: (二): CAD中的dxf文件解析(二):dxflib的使用_不爱学习 未完待续的博客-CSDN博客_dxflib (一):CAD中的dxf文件解析(一):准备…

C语言第二十八弹---整数在内存中的存储

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 目录 1、整数在内存中的存储 2、大小端字节序和字节序 2.1、什么是大小端? 2.2、为什么有大小端? 2.3、练习 2.3.1、练习1 2.3.2、练习2 2.…

FPGA OSERDESE2

Output Parallel-to-Serial Logic Resources (OSERDESE2) OSERDESE2 在Xilinx 7 系列器件是一款专用的并行至串行转换器,具有特定的时钟和逻辑资源,旨在促进高速源同步接口的实现。每个OSERDESE2模块都包括一个专用的数据串行器和 3 状态控制。数据和 3 态串行器都可以在 SD…

系统性学习vue-vue3

系统性学习vue-vue3 Vue3简介创建Vue3.0工程使用vue-cli创建使用vite创建工程 分析工程结构(cli创建的)main.jsApp.vue 安装开发者工具初识setupref函数处理基本类型处理对象类型 reactive函数回顾Vue2的响应式原理vue3响应式原理—Proxyreactive对比ref…

后端接口没完成,前端傻傻等待?NO,上mock.js,无需依赖后端

hello,我是贝格前端工场,项目中有时候后端接口没有完成,前端想对接口进行测试无法进行,这个时候mock.js就派上用场,无需后端接口,可以独立完成接口对接。 一、mock.js是什么 Mock.js是一个用于生成随机数据…

JAVAEE初阶 网络编程(十一)

HTTP协议 一. GET和POST方法二. Post和Get的区别三. HTTP协议中的请求报头部分1. Host2.Content-Length3.Content-Type4.User-Agent5. Referer6.Cookie 一. GET和POST方法 Get方法应用场景有很多,比如下列这个例子. Post方法主要应用在上传和登录上. 一般来说,Get方法没有body,…

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作 之前用过viewer.js,算是市场上用过最全面的图片预览。v-viewer,是基于viewer.js的一个图片浏览的Vue组件,支持旋转、缩放、翻转等操作。 基本使用 安装:npm安装…

Qt 事件

1. 事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用一个对象来表示一个事件,它继承自QEvent类。 2. 事件和信号 事件与信号并不相同,比如我们使用鼠标点击了一下界面上的按钮,那么就会产生…

一文看懂FAN73893MX 三相半桥门极驱动集成电路的选择

FAN73893MX产品概述: 是一款单片三相半桥栅极驱动 IC,设计用于高压、高速驱动 MOSFET 和 IGBT,工作电压高达 600 V。Fairchild 的高压工艺和共模噪声消除技术可以保证高端驱动器在高 dv/dt 噪声环境下稳定工作。先进的电平转换电路使高端栅极…

xxl-job架构原理讲解

1、调度中心 调度中心是一个单独的Web服务,主要是用来触发定时任务的执行 它提供了一些页面操作,我们可以很方便地去管理这些定时任务的触发逻辑 调度中心依赖数据库,所以数据都是存在数据库中的 调度中心也支持集群模式,但是…

【二十六】【C++】Map和Set

K模型与KV模型 在数据结构中,二叉搜索树(BST)的应用通常围绕着两种基本模型:键模型(K模型)和键值对模型(KV模型)。这两种模型定义了树中节点存储数据的方式,以及如何通过…