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

【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输入电流值。仅当相应的输入端口未连接时才可见。

相关文章:

【Unity3D】ASE制作天空盒

找到官方shader并分析 下载对应资源包找到\DefaultResourcesExtra\Skybox-Cubed.shader找到\CGIncludes\UnityCG.cginc观察变量, 观察tag, 观察代码 需要注意的内容 ASE要处理的内容 核心修改 添加一个Custom Expression节点 code内容为: return DecodeHDR(In0, In1);outp…...

MyBatisPlus常用注解

目录 一、TableName 二、TableId 三、TableField 四、TableLogic 一、TableName 在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表 由此得出…...

Putty中运行matlab文件

首先使用命令 cd /home/ya/CodeTest/Matlab进入路径:到Matlab文件夹下 然后键入matlab,进入matlab环境,如果main.m文件在Matlab文件夹下,直接键入main即可运行该文件。细节代码如下: Unable to use key file "y…...

ES6 | (一)ES6 新特性(上) | 尚硅谷Web前端ES6教程

文章目录 📚ES6新特性📚let关键字📚const关键字📚变量的解构赋值📚模板字符串📚简化对象写法📚箭头函数📚函数参数默认值设定📚rest参数📚spread扩展运算符&a…...

生产环境下,应用模式部署flink任务,通过hdfs提交

前言 通过通过yarn.provided.lib.dirs配置选项指定位置,将flink的依赖上传到hdfs文件管理系统 1. 实践 (1)生产集群为cdh集群,从cm上下载配置文件,设置环境 export HADOOP_CONF_DIR/home/conf/auth export HADOOP_CL…...

【lesson59】线程池问题解答和读者写者问题

文章目录 线程池问题解答什么是单例模式什么是设计模式单例模式的特点饿汉和懒汉模式的理解STL中的容器是否是线程安全的?智能指针是否是线程安全的?其他常见的各种锁 读者写者问题 线程池问题解答 什么是单例模式 单例模式是一种 “经典的, 常用的, 常考的” 设…...

【LeetCode每日一题】单调栈316去除重复字母

题目:去除重复字母 给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。 示例 1: 输入:s “bcabc” 输…...

【Git】Gitbash使用ssh 上传本地项目到github

SSH Git上传项目到GitHub(图文)_git ssh上传github-CSDN博客 前提 ssh-keygen -t rsa -C “自己的github电子邮箱” 生成密钥,公钥保存到自己的github的ssh里 1.先创建一个仓库,复制ssh地址 git init git add . git commit -m …...

activeMq将mqtt发布订阅转成消息队列

1、activemq.xml置文件新增如下内容 2、mqttx测试发送: 主题(配置的模糊匹配,为了并发):VirtualTopic/device/sendData/12312 3、mqtt接收的结果 4、程序处理 package comimport cn.hutool.core.date.DateUtil; imp…...

Go语言教程

一、引言 Go(又称Golang)是由Google开发的一种静态类型、编译型的开源编程语言。它旨在提供简单、快速和可靠的软件开发体验。Go语言结合了动态语言的开发效率和静态语言的安全性能,特别适用于网络编程、系统编程和并发编程。本教程将介绍Go…...

分布式锁的应用场景及实现

文章目录 分布式锁的应用场景及实现1. 应用场景2. 分布式锁原理3. 分布式锁的实现3.1 基于数据库 分布式锁的应用场景及实现 1. 应用场景 电商网站在进行秒杀、特价等大促活动时,面临访问量激增和高并发的挑战。由于活动商品通常是有限库存的,为了避免…...

嵌入式Linux中apt、apt-get命令用法汇总

在Linux环境开发过程中接触ubuntu虚拟机时,在安装软件或者更新软件时apt和apt-get命令使用相对较频繁,下面对这两个命令的用法进行汇总。 apt(Advanced Package Tool)和 apt-get 是用于在基于 Debian 的 Linux 发行版中进行软件包…...

Unity之ShaderGraph如何实现水面波浪

前言 这几天通过一个水的波浪数学公式,实现了一个波浪效果,感觉成就感满满,下面给大家分享一下 首先先给大家看一下公式; 把公式转为ShaderGraph 第一行公式:waveType = z*-1*Mathf.Cos(wave.WaveAngle/360*2*Mathf.PI)+x*Mathf.Sin(WaveAngle/360*-2*Mathf.PI) 转换…...

无线局域网(WLAN)简单概述

无线局域网 无线局域网概述 无限局域网(Wireless Local Area Network,WLAN)是一种短距离无线通信组网技术,它是以无线信道为传输媒质构成的计算机网络,通过无线电传播技术来实现在空间传输数据。 WLAN是传输范围在1…...

学习数仓工具 dbt

DBT 是一个有趣的工具,它通过一种结构化的方式定义了数仓中各种表、视图的构建和填充方式。 dbt 面相的对象是数据开发团队,提供了如下几个最有价值的能力: 支持多种数据库通过 select 来定义数据,无需编写 DML构建数据时&#…...

高录用快见刊【最快会后两个月左右见刊】第三届社会科学与人文艺术国际学术会议 (SSHA 2024)

第三届社会科学与人文艺术国际学术会议 (SSHA 2024) 2024 3rd International Conference on Social Sciences and Humanities and Arts *文章投稿均可免费参会 *高录用快见刊【最快会后两个月左右见刊】 重要信息 会议官网:icssha.com 大会时间:202…...

C语言-指针初学速成

1.指针是什么 C语言指针是一种特殊的变量,用于存储内存地址。它可以指向其他变量或者其他数据结构,通过指针可以直接访问或修改存储在指定地址的值。指针可以帮助我们在程序中动态地分配和释放内存,以及进行复杂的数据操作。在C语言中&#…...

MQL语言实现单元测试

文章目录 一、单元测试是什么二、单元测试的过程三、为什么需要单元测试四、MQL测试代码实现 一、单元测试是什么 单元测试是对软件中最小可测单元(如类或函数)进行独立验证和检查的过程。它是由开发工程师完成的,旨在确保每个单元的功能和逻…...

Redis信创平替之TongRDS(东方通),麒麟系统安装步骤

我的系统: 银河麒麟桌面系统V10(SP1)兆芯版 1.先进入东方通申请使用 2.客服会发送一个TongRDS包与center.lic给你(我这里只拿到.tar.gz文件,没有网上的什么安装版) 3.上传全部文件到目录中 4.服务节点安装,并启动 tar -zxvf TongRDS-2.2.1.2_P3.Node.tar.gz cd pmemdb/bin/…...

nginx服务

“欢唱吧,呼唤它,回来啊~” Web服务器简介 Web服务器,一般是指“网站服务器”,其本质就是驻留于互联网中,某一台机器(计算机)上的进程(程序)。Web服务器通常就是为用户提供信息浏览服务,更可以放置数据文件…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...