Asm Shader Reference --- Shader Model 2.x part
ps部分
概览
| Instruction Set | |||||||||
| Name | Description | Instruction slots | Setup | Arithmetic | Texture | Flow control | New | ||
| abs - ps | 绝对值 | 1 | x | ||||||
| add - ps | 加法运算 | 1 | x | ||||||
| break - ps | 跳出一个循环 | 1 | x | x | |||||
| break_comp - ps | 通过一个比较跳出循环 | 3 | x | x | |||||
| breakp - ps | 基于一个断言跳出循环 | 3 | x | x | |||||
| call - ps | 调用一个子程序 | 2 | x | x | |||||
| callnz bool - ps | 如果一个boolean寄存器不为0的话调用一个子程序 | 3 | x | x | |||||
| callnz pred - ps | 如果一个predicate寄存器不为0的话调用一个子程序 | 3 | x | x | |||||
| cmp - ps | 以0为比较赋值 | 1 | x | ||||||
| crs - ps | 叉积 | 2 | x | ||||||
| dcl_samplerType (sm2, sm3 - ps asm) | 为采样器声明贴图维数 | 0 | x | ||||||
| dcl - (sm2, sm3 - ps asm) | 声明顶点shader输出寄存器和像素shader输入寄存器之间的联合 | 0 | x | ||||||
| def - ps | 定义常量 | 0 | x | ||||||
| defb - ps | 定义一个 Boolean 常量 | 0 | x | x | |||||
| defi - ps | 定义一个integer 常量 | 0 | x | x | |||||
| dp2add - ps | 2D 点积之后加法运算 | 2 | x | ||||||
| dp3 - ps | 3D 点积 | 1 | x | ||||||
| dp4 - ps | 4D 点积 | 1 | x | ||||||
| dsx - ps | 改变x方向的比率 | 2 | x | x | |||||
| dsy - ps | 改变y方向的比率 | 2 | x | x | |||||
| else - ps | else块 | 1 | x | x | |||||
| endif - ps | if结束 | 1 | x | x | |||||
| endrep - ps | 循环结束 | 2 | x | x | |||||
| exp - ps | 全精度计算2的幂 | 1 | x | ||||||
| frc - ps | 小数部分 | 1 | x | ||||||
| if bool - ps | if块 | 3 | x | x | |||||
| if_comp - ps | 比较形式的if | 3 | x | x | |||||
| if pred - ps | 断言形式的if | 3 | x | x | |||||
| label - ps | 标签 | 0 | x | x | |||||
| log - ps | 全精度计算log₂(x) | 1 | x | ||||||
| lrp - ps | 线性插值 | 2 | x | ||||||
| m3x2 - ps | 3x2 乘法 | 2 | x | ||||||
| m3x3 - ps | 3x3 乘法 | 3 | x | ||||||
| m3x4 - ps | 3x4 乘法 | 4 | x | ||||||
| m4x3 - ps | 4x3 乘法 | 3 | x | ||||||
| m4x4 - ps | 4x4 乘法 | 4 | x | ||||||
| mad - ps | 乘法之后加法运算 | 1 | x | ||||||
| max - ps | 最大值 | 1 | x | ||||||
| min - ps | 最小值 | 1 | x | ||||||
| mov - ps | 赋值 | 1 | x | ||||||
| mul - ps | 乘法 | 1 | x | ||||||
| nop - ps | 无运算 | 1 | x | ||||||
| nrm - ps | 单位化 | 3 | x | ||||||
| pow - ps | 幂运算 | 3 | x | ||||||
| ps | 版本 | 0 | x | ||||||
| rcp - ps | 倒数 | 1 | x | ||||||
| rep - ps | 循环 | 3 | x | x | |||||
| ret - ps | 子程序的结束 | 1 | x | x | |||||
| rsq - ps | 平方根的倒数 | 1 | x | ||||||
| setp_comp | 设置断言寄存器 | 1 | x | x | |||||
| sincos - ps | Sin和cos | 8 | x | ||||||
| sub - ps | 减法运算 | 1 | x | ||||||
| texkill - ps | 中断像素渲染 | See note 1 | x | ||||||
| texld - ps_2_0 and up | 采样一个贴图 | See note 2 | x | ||||||
| texldb - ps | 根据w部分进行对贴图的level-of-detail bias采样 | See note 3 | x | ||||||
| texldd - ps | 用户提供一个剃度值来采样贴图 | 3 | x | x | |||||
| texldp - ps | 根据w部分进行对贴图的投影划分采样 | See note 4 | x | ||||||
部分函数细节
endrep
语法
endrep
示例
rep i2
add r0, r0, c0
endrep
if bool
语法
if bool
示例
defb b3, true
if b3
// Instructions to run if b3 is nonzero
else
// Instructions to run otherwise
endif
if_comp
语法
if_comp src0, src1
_comp为
|
Syntax |
Comparison |
|
_gt |
大于 |
|
_lt |
小于 |
|
_ge |
大于等于 |
|
_le |
小于等于 |
|
_eq |
等于 |
|
_ne |
不等于 |
示例
if_lt r3.x, r4.y
// Instructions to run if r3.x < r4.y
else
// Instructions to run otherwise
endif
rep
语法
rep i#
循环
i#.x范围为[0, 255]
示例
rep i2
add r0, r0, c0
endrep
vs部分
概览
| Instruction Set | ||||||||
| Name | Description | Instruction slots | Setup | Arithmetic | Flow control | New | ||
| abs - vs | 绝对值 | 1 | x | |||||
| add - vs | 加法运算 | 1 | x | |||||
| break - vs | 跳出一个循环 - vs...endloop - vs 或者 rep...endrep 块 | 1 | x | x | ||||
| break_comp - vs | 通过一个比较跳出循环 - vs...endloop - vs or rep...endrep block, with a comparison | 3 | x | x | ||||
| breakp - vs | 跳出一个循环 - vs...endloop - vs 或 rep...endrep 块, 基于一个断言 | 3 | x | x | ||||
| call - vs | 调用一个子程序 | 2 | x | |||||
| callnz bool - vs | 如果一个boolean寄存器不为0的话调用一个子程序 | 3 | x | |||||
| callnz pred - vs | 如果一个predicate寄存器不为0的话调用一个子程序 | 3 | x | x | ||||
| crs - vs | 叉积 | 2 | x | |||||
| dcl_usage input (sm1, sm2, sm3 - vs asm) | 为采样器声明贴图维数 | 0 | x | |||||
| def - vs | 定义常量 | 0 | x | |||||
| defb - vs | 定义一个 Boolean 常量 | 0 | x | |||||
| defi - vs | 定义一个integer 常量 | 0 | x | |||||
| dp3 - vs | 3D 点积 | 1 | x | |||||
| dp4 - vs | 4D 点积 | 1 | x | |||||
| dst - vs | 计算距离向量 | 1 | x | |||||
| else - vs | else - vs block | 1 | x | |||||
| endif - vs | 结束if - vs...else - vs block | 1 | x | |||||
| endloop - vs | 结束循环 - vs block | 2 | x | |||||
| endrep - vs | 结束 repeat 块 | 2 | x | |||||
| exp - vs | 全精度计算2的幂 | 1 | x | |||||
| exp - vs | 半精度计算2的幂 | 1 | x | |||||
| frc - vs | 小数部分 | 1 | x | |||||
| if bool - vs | Begin an if bool - vs block (using a Boolean condition) | 3 | x | |||||
| if_comp - vs | Begin an if bool - vs block, with a comparison | 3 | x | x | ||||
| if pred - vs | Begin an if bool - vs block with a predicate condition | 3 | x | x | ||||
| label - vs | 标签 | 0 | x | |||||
| lit - vs | 局部光照计算 | 3 | x | |||||
| log - vs | 全精度计算log₂(x) | 1 | x | |||||
| logp - vs | 半精度计算log₂(x) | 1 | x | |||||
| loop - vs | 循环 | 3 | x | |||||
| lrp - vs | 线性插值 | 2 | x | |||||
| m3x2 - vs | 3x2 乘法 | 2 | x | |||||
| m3x3 - vs | 3x3 乘法 | 3 | x | |||||
| m3x4 - vs | 3x4 乘法 | 4 | x | |||||
| m4x3 - vs | 4x3 乘法 | 3 | x | |||||
| m4x4 - vs | 4x4 乘法 | 4 | x | |||||
| mad - vs | 乘法之后加法运算 | 1 | x | |||||
| max - vs | 最大值 | 1 | x | |||||
| min - vs | 最小值 | 1 | x | |||||
| mov - vs | 赋值 | 1 | x | |||||
| mova - vs | 从浮点寄存器到地址寄存器(a0)移动数据 | 1 | x | |||||
| mul - vs | 乘法 | 1 | x | |||||
| nop - vs | 无运算 | 1 | x | |||||
| nrm - vs | 单位化一个 4D 向量 | 3 | x | |||||
| pow - vs | 幂运算 | 3 | x | |||||
| rcp - vs | 倒数 | 1 | x | |||||
| rep - vs | 循环 | 3 | x | |||||
| ret - vs | 对主函数或子程序做return处理 | 1 | x | |||||
| rsq - vs | 平方根的倒数 | 1 | x | |||||
| setp_comp - vs | 设置断言寄存器 | 1 | x | x | ||||
| sge - vs | 大于等于比较 | 1 | x | |||||
| sgn - vs | 返回符号 | 3 | x | |||||
| sincos - vs | Sin和cos | 8 | x | |||||
| slt - vs | 小于比较 | 1 | x | |||||
| sub - vs | 减法 | 1 | x | |||||
| vs | 版本 | 0 | x | |||||
---wolf96 2017/1/3
Asm Shader Reference --- Shader Model 2.x part的更多相关文章
- Asm Shader Reference --- Shader Model 2.0 part
ps部分 ps_2_0 概览 Instruction Set Name Description Instruction slot ...
- Asm Shader Reference --- Shader Model 3.0 part
ps部分 概览 Instruction Set Name Description Instruction slots S ...
- Asm Shader Reference --- Shader Model 1 part
ps部分 ps_1_1,ps_1_2,ps_1_3,ps_1_4 总览 Instruction Set ...
- Unity3D for VR 学习(9): Unity Shader 光照模型 (illumination model)
关于光照模型 所谓模型,一般是由学术算法发起, 经过大量实际数据验证而成的可靠公式 现在还记得2009年做TD-SCDMA移动通信算法的时候,曾经看过自由空间传播模型(Free space propa ...
- Create a Basic Shader in Shader Forge
[Create a Basic Shader in Shader Forge] 1.打开ShaderForge.Window-> Shader Forge.(打开速度较慢) 2.通过NewSha ...
- UnityShader之顶点片段着色器Vertex and Fragment Shader【Shader资料】
顶点片段着色器 V&F Shader:英文全称Vertex and Fragment Shader,最强大的Shader类型,也是我们在使用ShaderLab中的重点部分,属于可编程管线,使用 ...
- UnityShader之固定管线Fixed Function Shader【Shader资料3】
Fixed function shader简介: 属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的情况.使用的是ShaderLab语言,语法与微软的FX files 或 ...
- 【Unity Shader】Shader基础
目录 Chapter3 Unity Shader 基础 Chapter3 Unity Shader 基础 概述 在Unity需要材质(Material)与Unity Shader配合使用来达到满意的效 ...
- Unity5中新的Shader体系简析
一.Unity5中新的Shader体系简析 Unity5和之前的书写模式有了一定的改变.Unity5时代的Shader Reference官方文档也进一步地变得丰满. 主要需要了解到的是,在原来的Un ...
随机推荐
- 计算连续的IP地址
题目:要求计算连续的IP地址. 举例:起始IP为192.168.2.2,IP总个数为3,那么要求得的所有IP的为192.168.2.2,192.168.2.3,192.168.2.4.再举个例子,起始 ...
- php练习1——计算器
目标:输入两个数,计算两个数的和/差/积/商 程序如下:两个文件jiSuanQi.html和jiSuanQi.php 结果如下:
- WebLogic启动时报错
java.lang.ClassCastException: com.octetstring.vde.backend.BackendRoot cannot be cast to com.octetstr ...
- Unity3d Shader开发(三)Pass(Alpha testing )
透明度测试是阻止像素被写到屏幕的最后机会. 在最终渲染出的颜色被计算出来之后,可选择通过将颜色的透明度值和一个固定值比较.如果比较的结果失败,像素将不会被写到显示输出中. Syntax 语法 Alph ...
- 导航栏 & 状态栏覆盖
当 automaticallyAdjustsScrollViewInsets 为 YES 时,也是默认行为,表现就比较正常了,和 edgesForExtendedLayout = UIRectEdge ...
- 图像色彩空间YUV和RGB的差别
http://blog.csdn.net/scg881008/article/details/7168637 假如是200万像素的sensor,是不是RGB一个pixel是2M,YUV是1M? 首先, ...
- SQLite入门与分析(六)---再谈SQLite的锁
写在前面:SQLite封锁机制的实现需要底层文件系统的支持,不管是Linux,还是Windows,都提供了文件锁的机制,而这为SQLite提供了强大的支持.本节就来谈谈SQLite使用到的文件锁——主 ...
- ANDROID_MARS学习笔记_S01原始版_015_Socket
一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...
- INF文件
百度百科:http://baike.baidu.com/view/637107.htm?fr=ala0_1_1 INF简介 INF是Device INFormation File的英文缩写,是Micr ...
- android usb host 读写USB设备
自android3.1以后android增加了操作USB设备的API. 官网地址:http://developer.android.com/guide/topics/connectivity/usb/ ...