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 ...
随机推荐
- 推荐一个优秀的前端框架——Bootstrap
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架.Bootstra ...
- less的使用方法
LESS学习 1.变量 我们可以把一个css样式的值赋给一个参数,然后再设置样式的时候只需要设置这个参数名,如果要修改,就改参数的值就可以了. demo.html <!DOCTYPE html& ...
- Python中map,filter,reduce,zip的应用
事例1: l=[('main', 'router_115.236.xx.xx', [{'abc': 1}, {'dfg': 1}]), ('main', 'router_183.61.xx.xx', ...
- poj 3250 Bad Hair Day 单调栈入门
Bad Hair Day 题意:给n(n <= 800,000)头牛,每头牛都有一个高度h,每头牛都只能看到右边比它矮的牛的头发,将每头牛看到的牛的头发加起来为多少? 思路:每头要进栈的牛,将栈 ...
- 【BZOJ】1070: [SCOI2007]修车
1070: [SCOI2007]修车 Description 同 一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需 ...
- 在Ubuntu Linux下怎样安装QQ
最近好多人在吐槽Linux下上QQ简直就是煎熬,网页版的不方便,网上各种版本的QQ要么是功能不全.要么是界面丑到爆,要么是运行不稳定.那么这次为大家带来一个功能完整.运行稳定的wineQQ安装过程. ...
- ASP.NET MVC Razor视图(2)
昨天介绍了一些Razor的基本语法,几天接着向下说: 补成一个,上次介绍了怎么输出原样的文本,用<text></text>标签,下面再介绍一种语法: @{@:我爱北京} 这个 ...
- IOS开发—IOS 8 中设置applicationIconBadgeNumber和消息推送
摘要 在IOS7中设置applicationIconBadgeNumber不会有什么问题,但是直接在IOS8中设置applicationIconBadgeNumber会报错 因为在IOS8中要想设置a ...
- xxx couldn't be loaded because it has not been added to the build settings.
这个由于没有将进入场景放入Build Settings里面造成的.
- HttpOnly
Contents 1 Overview 1.1 Who developed HttpOnly? When? 1.2 What is HttpOnly? 1.3 Mitigating the Most ...