游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1797|回复: 5

shader程序在存入及取出texture数据时不一致,请教!

[复制链接]

8

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2006-3-14 21:22:00 | 显示全部楼层 |阅读模式
程序的目的是: 把场景的z值存入到一texture中,然后再取出来显示它的z值
存在的问题   : 把z值存入到texture中,检查无误; 而重新取出的数据和存入的数据却不一致
可以由程序显示出来看到错误,请问,这里面可能是什么问题呢?
//*********************
//****存入的时候代码*****
//*********************
//-----------------------------------------------------------------------------
// c12      - range scale
// v0...v4 - world-view-proj matrix
//-----------------------------------------------------------------------------

vs.1.1

dcl_position v0

// Transform and output position
m4x4 r0, v0, c0
mov oPos, r0

// Output depth
mul oT0.x, r0.z,c12.x

//-----------------------------------------------------------------------------
// Output depth to the texture
//-----------------------------------------------------------------------------

ps.2.0

// Incoming depth
dcl t0.x

// Output depth
mov r0, t0.x

mov oC0, r0

//*********************
//****取texture数据代码**
//*********************
//-----------------------------------------------------------------------------
// c0..3        ——这里的c0...c3和存入的时候的用到的矩阵c0..c3完全一样
//-----------------------------------------------------------------------------

vs.1.1

dcl_position        v0

//other program omit
    ....

// transform
m4x4 oT0, v0, c0
//-----------------------------------------------------------------------------
//PS
//-----------------------------------------------------------------------------
ps.2.0

dcl t0.xyzw
dcl_2d s0

texld r0, t0, s0

mov oC0,r0

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-3-15 09:25:00 | 显示全部楼层

Re:shader程序在存入及取出texture数据时不一致,请教!

用hlsl多好看

8

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-3-15 10:18:00 | 显示全部楼层

Re:shader程序在存入及取出texture数据时不一致,请教!

原理都一样,很多地方都想过了,还是找不到出问题的原因
原来保存进去的深度图效果和预期完全一样,可在后面再取出来的时候场景的地方全部为白色,其它部分为黑色,一点深度图的概念都没有;唉...

11

主题

31

帖子

40

积分

注册会员

Rank: 2

积分
40
QQ
发表于 2006-3-15 14:49:00 | 显示全部楼层

Re:shader程序在存入及取出texture数据时不一致,请教!

你的这部份我不太明白:
// v0...v4 - world-view-proj matrix
//-----------------------------------------------------------------------------

vs.1.1

dcl_position v0

既然v0至v4被世界-视空间-投影矩阵所占有,那么为何又被定义为输入的顶点(dcl_position v0) ?

8

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2006-3-15 16:39:00 | 显示全部楼层

Re:shader程序在存入及取出texture数据时不一致,请教!

对不起,编辑有错
应该是c0..c3为world-view-porj

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-3-16 09:21:00 | 显示全部楼层

Re:shader程序在存入及取出texture数据时不一致,请教!

存入时 z 要除以 w,因为纹理是0~1。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 22:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表