如何在 Shader 属性中定义浮点数组?

2023-12-23

我想在我的着色器中定义一个浮点数组,如下所示:

Properties
{
    _TilesX ("Tiles X", Int) = 10
    _TilesY ("Tiles Y", Int) = 10

    _TileData1 ("Tile data", Float[]) = {} // THIS!!!

    _Texture1 ("Texture odd", 2D) = "white" {}
    _Texture2 ("Texture even", 2D) = "white" {}
}

我正在尝试创建一个用作网格的平面,并且我想在运行时修改 _TileData1 以更改图块的 Y 偏移量。我使用 _TilesX 和 _TilesY 从 1d 数组中获取图块的 2d 位置。

需要明确的是,我只是想了解如何定义属性类型float[]因为我在 Unity 的手册页或论坛上找不到如何执行此操作。


您不能将属性用于float[]。但是您可以将它们用作着色器中的变量并从脚本中设置它们:

在你的着色器中:

CGPROGRAM
int _SegmentsCount = 0;
float _Segments[1000];

void surf (Input IN, inout SurfaceOutput o) {
    for (int i = 0; i < _SegmentsCount; i++) {
        // This is obsviously just an example,
        // avoid loops in shaders if you can help it.
    }
}

ENDCG

然后在你的脚本中:

float [] array = new float[] { 0.25f, 0.75f };
material.SetFloatArray("_Segments", array);
material.SetInt("_SegmentsCount", 2);

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

如何在 Shader 属性中定义浮点数组? 的相关文章

  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • OpenGL 3.1 中已弃用 glLineStipple

    glLineStipple在最新的 OpenGL API 中已被弃用 它被替换成什么 如果不更换 怎样才能达到类似的效果呢 我当然不想使用兼容性配置文件 抱歉 它还没有被任何东西取代 我想到的第一个模拟它的想法是几何着色器 您向几何着色器提
  • 在浏览器中以低延迟捕获声音输入

    是否可以在浏览器中捕获低延迟的声音输入 主要用于录制吉他 我知道这也取决于硬件 但我们假设硬件足够好 我尝试使用 Web Audio API 但它的延迟有点糟糕 是否还有其他技术可以在浏览器中提供高性能的声音输入捕获 可以使用Unity3D
  • 在unity3D中显示数学方程

    我想使用它的 GUI 系统统一显示数学方程 有办法吗 我正在使用 C 语言在 Unity 中进行编程 如果我还可以使用 C 代码显示数学符号 这对我来说会很有用 谢谢 自 2016 年起 您可以使用TEXDraw https assetst
  • 优化 - 步进可能表现奇怪:iOS/Unity

    我正在尝试将 Unity 集成到 iOS 应用程序中 我已经遵循了这个教程http www agnosticdev com blog entry swift integrating unity and vuforia ios swift p
  • Unity 对象不围绕枢轴点旋转

    突然 由于某种原因 统一编辑器中的对象开始围绕其重心旋转 至少我认为是这样 而不是其枢轴点 我尝试将对象放置在一个空对象内 该对象将像往常一样用作新的枢轴点 但这并没有改变任何东西 这是一些设置还是一些更新的功能 我怎样才能阻止它 检查编辑
  • (Unity 中的 Firebase 数据库)在 Android 构建期间在 Temp 中缺少classes.jar

    I am using Firebase Database in my Unity project but I am having some issues when building the project for android It ru
  • 如何在使用 Cmake 构建期间编译 HLSL 着色器?

    我正在开发 d3d 应用程序 我想在使用 cmake 构建期间编译我的 hlsl 着色器 我不知道从哪里开始 这是我当前的 CMakeLists txt cmake minimum required VERSION 3 20 project
  • Unity遥控器5不工作

    我尝试运行 Unity Remote 但是当我在 Unity 编辑器中按下播放时 我的手机上没有任何反应 我认为我需要做的不仅仅是将手机与电脑连接 将编辑器设置为任何 Android 设备并按开始键 但这些是它所说的唯一内容 它根本不起作用
  • 按像素值偏移 gl_Position 或 gl_Vertex

    我的属性包含像素值 我想用这个属性值来偏移我的 gl vertex 问题是我的 gl vertex 以世界单位为单位 而 offset attribute 以像素为单位 如果我将屏幕尺寸作为统一发送 然后将像素转换为 1 到 1 值 并将其
  • 从 UnityWebGL jslib 返回字符串

    我想使用 jslib 来获取网址参数 像这样的代码 jslib GetUrl function var s var strUrl window location search var getSearch strUrl split var g
  • 检测哪些 Tilemap 单元与 Unity 中的 Collider2D 发生碰撞

    我有一个Tilemap 这有一个TilemapCollider2D成分 在其上绘制了几个图块 每个图块都有自己的精灵碰撞器形状 然而它们是精灵图块而不是预制件 它们不是使用预制画笔绘制的 我还有一个游戏对象Collider2D a Circ
  • Three.js、自定义着色器和具有透明度的 png 纹理

    我有一个非常简单的 PNG 纹理 一个带有透明背景的灰色圆圈 我用它作为制服map for a THREE ShaderMaterial var uniforms THREE UniformsUtils merge basicShader
  • 使用 Unity3D 解决 PnP

    我有一个真实 物理的棍子 上面连接有红外摄像头和一些红外 LED 它们形成了我正在使用的模式 以便使虚拟棍子以与物理棍子相同的方式移动 为此 我在 Python 中使用 OpenCV 并将由solvePnP 计算的旋转和平移向量发送到 Un
  • Unity IAP 无法在 Apple Testflight 中工作

    过去几天尝试让 IAP 在我的第一个游戏应用程序的 TestFlight 上运行时遇到问题 IAP 在 Unity Editor 假商店 和 Google Play 内部测试轨道 上运行良好 我没有从苹果商店收到任何产品价格 并且购买按钮没
  • 将函数作为函数参数传递

    Unity C 似乎无法识别Func lt gt 作为函数委托的符号 那么 如何将函数作为函数参数传递呢 我有一个想法Invoke functionName 0 可能有帮助 但我不确定它是否实际上立即调用该函数 或者等待帧结束 还有别的办法
  • Shader的功能参数表现

    我试图了解如何在着色器语言中实现传递参数 我读过几篇文章和文档 但仍然有一些疑问 特别是我试图理解与C 函数调用 特别强调性能 之间略有差异HLSL Cg and GLSL但我猜下划线的实现非常相似 到目前为止我所理解的 除非另有说明 函数
  • 通过脚本隐藏/取消隐藏 Unity3D 中的对象

    我想在一切开始之前将场景的一部分设置为隐藏 所以可以说我有一些isHidden 我试图找到 我设置的属性true在我的场景的第一帧之前 在某些时候我想取消隐藏它并触发动画 我知道如何触发动画 我发现隐藏对象的唯一方法是将其设置为 SetAc
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou

随机推荐

  • Apache Beam Python 窗口和 GroupByKey

    LE TL 博士 如何在 Python 中创建无限数据源 是否可以 我正在构建一个流数据流 它将持续处理来自具有时间戳 id 和读数值的传感器的浮点值 将这些值放入FixedWindows2秒 然后输出聚合 代码链接 https gist
  • 从数组中删除每隔一个元素并重新排列键?

    我应该如何从这样的数组中删除每个第二个元素 只使用 PHP 中的内置数组函数 array array first second third fourth fifth sixth seventh 当我删除每隔一个元素时 我应该得到 array
  • Gradle wsdl 生成

    我想从 wsdl 生成 java 文件 我尝试使用wsdl2java https github com nilsmagnus wsdl2javagradle 插件 我定义插件 subprojects buildscript reposito
  • 将 KILL 与声明的变量一起使用

    我试图将 KILL 语句与声明的变量一起使用 但它给了我一个语法错误 有没有办法不使用常量并以编程方式更改 SPID 例如 DECLARE SPID smallint SET SPID 100 Kill SPID 顺便说一句 这只是一个例子
  • 设置一个元素的长度(高度或宽度)减去另一个元素的可变长度,即 calc(x - y),其中 y 未知

    我知道我们可以使用calc https developer mozilla org en US docs Web CSS calc当长度被定义时 flex basis calc 33 33 60px left calc 50 25px he
  • 虽然有复合主键,但当只有一个键唯一时 Hibernate 会报错

    我遇到了一个 Hibernate 错误 上面写着找到多于一行具有给定标识符的行我被困住了 我非常感谢对此的任何帮助 我想创建一个表订单行其中包含特定销售订单的产品代码 数量等 A 销售订单可以包含许多 orderLines orderLin
  • realloc 但只有前几个字节有意义

    假设我已经使用过ptr malloc old size 分配内存块old size字节 只有第一个header size字节是有意义的 我将把尺寸增加到new size new size大于old size and old size大于he
  • 直接连接:从大型机向 Unix 发送文件

    当我从 Mainframe Connect 直接发送可变长度文件到 UNIX 框时 UNIX 上的文件在 Mainframe 文件的开头有一些额外的字节 我尝试使用不同的 SYSOPTS 选项 但仍然收到这些初始字节 任何想法 您应该考虑将
  • Rust:从动态加载库执行特定代码行时出现段错误

    我正在用 Rust 编写一个简单的基于插件的系统 以获得使用该语言的一些技能和经验 我的系统动态加载库并在运行时执行它们以初始化每个插件 从动态加载的库执行代码时 我遇到了一个有趣的段错误问题 这是加载和运行插件初始化函数的代码 这部分工作
  • LINQ 选择第一个

    嗨 我有这段 linq 代码 var fp lnq attaches First a gt a sysid sysid name 经过分析后 它会生成以下 t sql SELECT TOP 1 t0 sysid t0 name t0 att
  • 如何压缩文件名中包含今天日期的文件夹?

    我有一个批处理和一个 vbs 文件来压缩具有特定目录名称的文件夹并将其复制到另一个文件夹 如何只压缩包含今天日期的文件夹 如果不可能 我如何才能仅压缩将今天日期作为 修改日期 列的文件夹 bat echo off set mypath C
  • admob 广告加载失败:3

    我正在开发一个 Android 应用程序 我想在我的应用程序中显示横幅广告 我以前的应用程序工作正常并且显示广告 当我创建新应用程序时 即使在旧应用程序中广告也没有显示 显示广告加载失败 ad 3 这是 logcat 中显示的内容 11 2
  • Airflow 中的 KubernetesPodOperator 特权 security_context

    我在 Google 的 Cloud Composer 上运行 Airflow 我正在使用KubernetesPodOperator https airflow apache org api airflow contrib operators
  • 当调用 dlclose 时,共享库中的全局变量会发生什么?

    如果通过 dlopen 和 dlclose 机制使用共享库 或 DLL 并且创建的共享库有一些内存来自堆的全局变量 那么当调用 dlclose 时这些变量和内存会发生什么 如果在同一个进程中 再次调用 dlopen 会出现什么行为 If d
  • 带有空 aps 字典的 iOS 推送通知

    进行研究以尝试选择通知类型的方向 我希望能够通知我的应用程序有新数据需要刷新 但不会通过弹出 通知消息打扰用户 这个想法是 如果应用程序打开或关闭 则会发出相同的通知 并且当此 特殊 消息到达并且应用程序打开时 它知道要获取数据 我的想法是
  • SharedPreferences 不适用于真实设备 FLUTTER

    我使用 SharedPreferences 来记住用户名和密码 以便下次登录时无需询问密码 当我使用带有 USB 线的真实设备进行调试时 它运行良好 但当我构建 APK 并安装它时 它在我的设备中不起作用 我不知道我错过了什么 我像这样在登
  • 页面内容是用 JavaScript 加载的,而 Jsoup 看不到它

    页面上的一个块由 JavaScript 填充内容 并且在使用 Jsoup 加载页面后 没有任何信息 有没有办法在解析页面时也获取 JavaScript 生成的内容Jsoup 无法在此处粘贴页面代码 因为它太长 http pastebin c
  • RewriteMap 在 mod-rewrite 中不起作用

    我一直在尝试使用 htaccess 中的 RewriteMap 指令进行简单映射 但由于某种原因我每次都会收到错误 500 我的语法是 选项 FollowSymLinks RewriteEngine on RewriteBase Rewri
  • 如何在R中使用公式排除主效应但保留交互作用

    我不想要主效应 因为它与更精细的因子固定效应共线 所以拥有这些效果很烦人NA 在这个例子中 lm y x z 我想要的互动x 数字 和z 因素 但不是主效应z 介绍 R 文档 formula says 运算符表示因子交叉 a b 解释为 a
  • 如何在 Shader 属性中定义浮点数组?

    我想在我的着色器中定义一个浮点数组 如下所示 Properties TilesX Tiles X Int 10 TilesY Tiles Y Int 10 TileData1 Tile data Float THIS Texture1 Te