`

着色器脚本语言使用方法

 
阅读更多

#uniform 

 输入着色器的只读值,存储数据用的,例如转换矩阵、光照参数或者颜色。基本上各种输入着色器的常量参数像顶点和片段应该是uniform。uniform声明全局变量,顶点着色器中声明的uniform,片元着色器也可以使用。另,不同平台对个数有限制,详情可以查资料。

e.g

uniform mat4 viewProjMatrix;

uniform mat4 viewMatix;

uniform vec3 lightPosition;

 

#attibute (属性)

仅仅在顶点着色器中被使用,做为顶点着色器的输入。典型被用来存储位置、法线、贴图坐标和颜色数据。属性是每个顶点被绘制的详细数据。个数也有限制,最小为8.

e.g

attribute vec4 a_positon;

attribute vec4_a_texCoord0;

 

#varying (变量)

变量被用来存储顶点着色器的输出和片元着色器的输入。他们在顶点着色器和片元着色器中必须被相同的声明(类型需匹配),数量限制最小是8

varying vec2 texCoord;

varying vec4 color;

 

# lowp, mediump, highp (精度控制)

精度控制能够被用在任何浮点和整型数变量。

e.g

highp vec4 position;

varying lowp vec4 color;

mediump float specularExp;

//默认精度在头部定义

precision highp float;

precision mediump int;

 

#invariant (不变性)

被用于任何顶点着色器的变量输出的关键字。一旦输出被宣布为invariance, 同样计算的输入相同,编译器保证的输出结果相同。

 

e.g

invariant gl_Position;

//可以使用#pragma指令保证全局变量保持invariant

 

 

没有搞懂的部分

Sample2D

texture2D

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Unity3Dj脚本编程 unity着色器和屏幕特效开发秘籍

    本书以Unity3D的跨平台基础Mono,以及其游戏脚本语言C#为基础进行讲解。

    琥珀色:琥珀色是一个多API着色器测试框架

    通过Amber,您可以通过脚本流程的流畅性和易用性来捕获和传达着色器错误: 无需图形API编程。 支持Vulkan图形API WIP:支持图形API 单个文本字符串(或文件)映射到单个图形API管道测试用例。 文本包括: 输入数据...

    现必要的算法程序以自动为黑白图像着色的 Matlab 脚本_代码_下载

    实现必要的算法程序以自动为黑白图像着色的 Matlab 脚本。特别是,您需要开发代码来执行一些计算活动: 项目实施 颜色实验室空间中的图像表示 根据一组相关的训练图像剖析 Color Lab。 根据 SLIC 算法在超像素中...

    inverse:一种诗意的编程语言,可使用以下方式对着色器进行实时编码

    该语言使用基于堆栈的范例(受Forth启发),并编译为GLSL,或更具体地说,编译为平面上的片段着色器。 该语言没有预定的词汇-而是由您决定。 一个非常粗糙和不完全指南住。 不久将更新更多详细信息,并且还将跟随...

    AI Toolbox for ChatGPT and DALLE V3.8.0

    只需键入描述要创建的 C# 脚本、着色器或 UI 文档的提示即可。ChatGPT 将使用您的提示来生成代码,利用其高级语言理解和生成功能。这种简化的过程使您可以专注于项目的创意方面,同时减少手动编码所花费的时间。 ...

    ShaderConductor:ShaderConductor是一个工具,用于将HLSL交叉编译为其他着色语言

    着色器导体 ShaderConductor是一种工具,用于将HLSL交叉编译为其他着色语言。 产品特点 将HLSL转换为可读,可用和高效的GLSL 将HLSL转换为可读,可用和高效的ESSL 将HLSL转换为可读,可用和高效的金属着色语言...

    pysl:PYthon着色语言编译器

    pyslc允许评估输出(使用fxc和glsllangValidator ),但是不能保证正确编译的PYSL脚本是有效的着色器。 如果您尝试访问2D向量的z分量,则让后端编译器抱怨会更容易。 这并不意味着不存在类型检查等,而是严格限于...

    Unity 5.X 3D游戏开发技术详解与典型案例 完整源码下载

    第7章介绍了Unity 3D中的着色器和着色器语言—ShaderLab;第8章介绍了天空盒、虚拟按钮与摇杆、声音、水特效、3D拾取、重力加速度传感器及雾特效等开发常用的技术;第9章介绍了Unity中经常使用的光影效果,主要包括...

    魔兽世界插件-LUA编辑器 WOWLUA

    WowLua 是一个在魔兽世界里边运行 Lua 脚本的编辑...多页脚本编辑器。 语法着色 输出重定向到 WowLua 的输出窗口 WowLua 的输出窗口 /wowlua 或 /lua 打开 WowLua。 /wowluarun 或 /luarun 从命令行运行 WowLua 页面。 ...

    Unity5.X 3D游戏开发技术详解与典型案例

    第7章介绍了Unity 3D中的着色器和着色器语言—ShaderLab;第8章介绍了天空盒、虚拟按钮与摇杆、声音、水特效、3D拾取、重力加速度传感器及雾特效等开发常用的技术;第9章介绍了Unity中经常使用的光影效果,主要包括...

    ActionScript开发人员指南中文版

    第章:使用PixelBender着色器 PixelBender着色器基础知识 加载或嵌入着色器 访问着色器元数据 指定着色器输入和参数值 使用着色器 第章:使用影片剪辑 影片剪辑基础知识 使用MovieClip对象 控制影片剪辑播放 使用...

    Unity 5.X 3D游戏开发技术详解与典型案例

    第7章介绍了Unity 3D中的着色器和着色器语言—ShaderLab;第8章介绍了天空盒、虚拟按钮与摇杆、声音、水特效、3D拾取、重力加速度传感器及雾特效等开发常用的技术;第9章介绍了Unity中经常使用的光影效果,主要包括...

    Unity3D游戏开发技术详解与典型案例

    第7章介绍了Unity 3D中的着色器和着色器语言——ShaderLab;第8章介绍了PlayerPrefs类、Network Class(网络类),以及加速度传感器的使用;第9章介绍了完整的大型3D游戏案例——3D保龄球;第10章介绍了完整的大型3D...

    JP Software CMDebug26.02.42免费版

    CMDebug是一款编程处理调试器CMDebug包括选项卡式编辑窗口和带有单步执行,断点,语法着色,工具提示,书签以及选项卡式变量和监视窗口的复杂调试器Windows批处理文件编程从未如此简单或更强大 1.使用集成图形IDE...

    autocad命令全集

    252 SHADE SHA 着色处理 253 SHAPE   插入形文件 254 SHELL SH 切换到DOS环境下 255 SHOWMAT   显示实体材质类型 256 SKETCH   徒手画线 257 SLICE SL 将三维实体切开 258 SNAP SN 设置目标捕捉功能 259 SOLDRAW...

    VbsEdit,获评很好的vbs编辑器

    VbsEdit支持带有语法着色、智能感知、代码片段的VBScript,这个VBScript编辑器拥有您需要的一切! VbsEdit是一个VBS编辑器,也是一个WSF编辑器和一个HTA编辑器。 它可以在没有管理员权限的情况下安装。评估版永不...

    Denrim:独特的基于文本的2D游戏创建者,适用于macOS,iOS和tvOS

    您无需成为开发人员即可使用Denrim创建游戏,因为无需使用任何脚本语言。 基于文本的行为树是易于使用但功能强大的工具,可用于创建游戏逻辑和AI。 它们比脚本语言更易于使用和理解,但是它们被本机编译到Swift中...

    ActionScript 3.0 开发人员指南 (AS3开发帮助文档)

    第 15 章 : 使用 Pixel Bender 着色器 第 16 章 : 使用影片剪辑 第 17 章 : 使用补间动画 第 18 章 : 使用反向运动 第 19 章 : 在三维 (3D) 环境中工作 第 20 章 : 文本使用基础知识 第 21 章 : 使用 ...

    sysmel:系统元编程语言

    用于Vulkan着色器生成的Spir-V后端。离线编译器加载和使用脚本newImage.sh使用Sysmel编译器加载新映像,该映像可以通过sysmelc bash脚本通过命令来调用。 命令行前端接受gcc / clang样式的命令行参数: # Program ...

    国产优秀文本编辑器everedit

    可编程高性能着色器,展现任何语言丰富多彩的一面 打印、打印预览 上下文单词自动完成,输入过的单词轻松展现 自动更正关键字大小写 强大的自定义键盘。支持Emacs式按键,可以通过插件模仿VIM 列模式(列插入、删除...

Global site tag (gtag.js) - Google Analytics