游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2993|回复: 2

Vertex shader输出的xyz坐标与屏幕像素的位置关系?Shader画点

[复制链接]

7

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2010-7-13 11:41:00 | 显示全部楼层 |阅读模式
小弟正在研究vertex shader输出的xyz坐标与屏幕像素的位置,
故写了一个Effect大概如下:

float4x4 matWorldViewProj;

struct VS_OUTPUT
{
    float4 Position : POSITION;
}

VS_OUTPUT VS(float4 pos : POSITION)
{
    VS_OUTPUT out = (VS_OUTPUT)0;

    out.Position = mul(pos, matWorldViewProj);
    out.Position.x = 0.0f;
    out.Position.y = 0.0f;
    out.Position.z = 0.0f;
    //out.Position.w = 0.0f;         这一句只有注释掉,屏幕中心才能显示出来一个像素大小的点
}


如上面所说,out.Position.w = 0.0f;这一句只有注释掉,屏幕中心才能显示出来一个像素大小的点。

我尝试过很多值,正的负的,从10000 ~~~~~~ 0.000001,只要赋值,点就显示不出来了。

如果不给 w 赋值,单单改变xyz为0.0f,那么所有的顶点都编程屏幕中间的一个点了。这是我想要的效果。
我还想移动到这个点到屏幕的四个角,但是试验了一下,移动的位移是与w有关系的。

请问:
1. 怎么样写xyzw,把他们移动到屏幕的任何位置?
2. 屏幕的像素和vertex shader输出的XYZW是如何对应的?(单就画点元素来说)
3. 为何我改变w就无法显示呢?是不是哪里出错了?

53

主题

98

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2010-7-13 14:30:00 | 显示全部楼层

Re: Vertex shader输出的xyz坐标与屏幕像素的位置关系?Shader

out.Position.w = 0.0f;有问题,你换成任意非零的数看看,都能画出来。

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-7-13 17:20:00 | 显示全部楼层

Re:Vertex shader输出的xyz坐标与屏幕像素的位置关系?Shader

看不懂  只有学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 10:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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