麒麟子

~~

导航

<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

统计

常用链接

留言簿(12)

随笔分类

随笔档案

Friends

WebSites

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜

GPU中的ps 1.x 寄存器

将就看吧,有些单词我实在不知道怎么翻译,只可意会!

像素着色器需要依靠寄存器来取得顶点数据,输出像素数据,取得计算时的临时结果和关联纹理采样通道(stage)。有几种类型的寄存器,每一种都有特殊的功能和用途。

像素着色器需要的用到的数据由寄存器保管,下面是寄器存的所有介绍
寄存器类型:描述了四种可用的寄存器和他们各自的用途
读取端口限制:单指针使用多个寄存器时的限制
R/RW: 描述了哪些寄存器可以用来读,写或是读写。
范围:各个分量的范围的详细说明

Register Types  
                                     Versions   
Name  Type                   1_1        1_2        1_3        1_4
c#  Constant register       8             8             8           8
r#  Temporary register    2             2             2           6
t#  Texture register          4             4             4           6
v#  Color register            2             2             2           2 in phase 2

1,常量寄存器:常量寄存器容纳了常量数据。数据可以用IDirect3DDevice9::SetPixelShaderConstantF函数将一个常量装入常量寄存器中。也可以用def-ps来定义一个常量。 常量寄存器对纹理寻址指令来说是不可用的,唯一例外的是texm3x3spec-ps指令,这个指令使用一个常量寄存器来提供一个视线向量(eye-ray vector)

2,临时寄存器:临时寄存器用来存立即结果。r0用来作为PS的最终输出。shader的最后时刻r0中存放的是最后的像素颜色值
如果任何的着色器试图从一个没有被写入数据的临时寄存器中读取数据时,着色器激IDirect3DDevice9::CreatePixelShader将会失败(shader validation will fail)。假设激活(validation)是可用状态D3DXAssembleShader函数调用也会因为相同的原因而失败。(不要使用D3DXSHADER_SKIPVALIDATION)

纹理寄存器:
在ps 1_1 到1_3中,纹理寄存器容纳纹理数据或是纹理坐标。当一个纹理被采样时,纹理数据便被装载到一个纹理寄存器中。
当纹理通道状态属性被登记的时候纹理采样使用纹理坐标来查询(look up)或采样(sample)一个纹理坐标(u,v,w,q)标记的颜色值。纹理坐标数据会根据顶点纹理坐标数据进行插值,并关联到相关的纹理通道。纹理通道号与纹理坐标声明序列有一个一一对应关系。默认情况下,顶点格式中定义的第一个纹理坐标与纹理通道0关联。
 在这些版本的像素着色器中,当纹理寄存器用来做算术运算的时候就和临时寄存器的效果一样了。
在ps_1_4中,纹理寄存器(t#)容纳的是只读纹理坐标信息。这意味着纹理坐标集和纹理通道编号是独立的。纹理通道编号由目的寄存器(r0 to r5)决定。对于texld指令来说,纹理坐标集由源寄存器t0 to t5决定。因此纹理坐标集可以映射到任何的纹理通道上。另外,对于texld的源寄存器(指定纹理坐标信息)也可以是临时寄存器(r#)。在这样的情况下,临时寄存器记录纹理坐标。
颜色寄存器容纳了每个像素的颜色值,这个值通过顶点数据中的漫反射和镜面光颜色值迭代而来。对于ps_1_4。颜色寄存器只有在phase2中可用。如果着色模式设置为D3DSHADE_FLAT,那么顶点颜色中的颜色迭代将不可用。如果雾化开启的话,那么渲染管线还是会忽略着色模式,对雾进行颜色迭代。记住雾化比像素着色器后应用。
通常我们会从v0加载顶点漫反射颜色数据。从v1加载顶点镜面光颜色数据。
输入颜色数据值将会被规范到0和1,因为这是像素着色器中的颜色寄存器的有效范围

像素着色器对颜色寄存器进行只读操作。颜色寄存器中存放的是迭代值,但是迭代可能会造成比纹理坐标低很多精度

 

 

posted on 2009-09-12 13:36 麒麟子 阅读(2276) 评论(5)  编辑 收藏 引用 所属分类: GPU and Graphic

评论

# re: ps_1_1__ps_1_2__ps_1_3__ps_1_4 寄存器 2009-09-12 16:40 唐风

博主的标题把CppBlog的侧边栏撑爆了!呵呵  回复  更多评论   

# re: ps_1_1__ps_1_2__ps_1_3__ps_1_4 寄存器 2009-09-12 22:57 双色球

河蟹社会。三个带表  回复  更多评论   

# re: ps_1_1__ps_1_2__ps_1_3__ps_1_4 寄存器 2009-09-13 11:38 凡客诚品

阿萨大花洒的  回复  更多评论   

# re: ps_1_1__ps_1_2__ps_1_3__ps_1_4 寄存器 2010-04-08 07:39 TamiJoyner

Following my own investigation, billions of people in the world receive the <a href="http://lowest-rate-loans.com/topics/business-loans">business loans</a> from good creditors. So, there is great possibilities to find a consolidation loan in all countries.   回复  更多评论   

# re: ps_1_1__ps_1_2__ps_1_3__ps_1_4 寄存器 2010-07-21 01:32 technology essay

We surely will come along your fantastic theme connected with this good post in time of the essay and book reports essays paper finishing. So, thanks for work.   回复  更多评论   

# re: GPU中的ps 1.x 寄存器 2012-07-02 12:00 how to buy term papers

I did not use the essay writing services essayslab.com for research essays writing. But, I do not have time for term paperd writing and must purchase customized research papers.   回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理