游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: wenjihu

好不容易编个d3d 的 顶点shader 但运行就是没效果 什么也看

[复制链接]

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-11-10 16:04:00 | 显示全部楼层

Re: Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什

wenjihu: Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什么也看不到

和和  不是 我没有改变顶点的位置 只是改变颜色 先小试一下


你这个想法是错误的,乘以WVP不意味着改变了顶点位置,因为VS输出的顶点位置必须要乘以World View  Projection 3个矩阵,才能转换为正确的屏幕坐标,真正的不改变顶点位置只是意味着World矩阵为1(Identity)而已。你现在输出的图像也许在屏幕外十万八千里的地方

32

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2005-11-10 16:44:00 | 显示全部楼层

Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什么

是这样啊 但是我在程序里已经用了 SetTransform 进行了转换 然后调用的VS 如果在VS中乘以WVP 那摸SetTransform 的转换还有效吗 如果有效 那还用再乘以WVP吗 和和  给nocture大哥添麻烦了

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-11-10 17:15:00 | 显示全部楼层

Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什么

SetTransform那是给固定流水线用的,如果用Shader来做的话,SetTransform是没有作用的。所以,一定要在Shader里乘WVP。实际上SetTransform也就是通知固定流水线的Vertex Shader程序渲染时乘以你在SetTransform中设置的W、V、P 矩阵。

32

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2005-11-10 17:38:00 | 显示全部楼层

Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什么

和和 nocture大哥之强 小弟已经见识了 惭愧啊 能否留个QQ 如果以后有疑难想直接请教 拜托

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-11-10 17:53:00 | 显示全部楼层

Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什么

介绍一个Shader群好了:7352359

32

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2005-11-11 09:39:00 | 显示全部楼层

Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什么

在吗  我昨晚狂试一晚上 还是不行 如果你有好用的VS源程文件 能否给小弟发一份 我想知道到底错哪了  跪谢
下面的是我的  
struct VS_OUTPUT
{ float4 Position   : POSITION;float4 color : COLOR; };

float4x4 m : PROJECTION= {0.75,0,0,0,
                                          0,1,0,0,
                                          0,0,1.001001,1,
                                          0,0,-1.001001,0};
                 
  float4x4 v : VIEW= {0.99999994,0,0,0,
                               0,0.99999988,0,0,
                               0,0,0.99999994,0,               
                              0,0,3.9999998,1,};
                     
float4x4 w : WORLD = {1,0,0,0,
                                  0,1,0,0,
                                  0,0,1,0,
                                  0,0,0,1};
                           
VS_OUTPUT main(float4 position : POSITION)
         {  
         VS_OUTPUT q;        
         q.Position = mul(position,mul(mul(w,v),m));
         q.color = float4(1,0,1,1);
         return q;
         }
                    
struct PS_OUTPUT
{ float4 color : COLOR; };

  PS_OUTPUT pmain(float4 color : COLOR)
  {  
       PS_OUTPUT p;
       p.color = color;
       return p;
     }
        
   technique t0
{
    pass p0
    {
      
        VertexShader = compile vs_1_1 main();
        PixelShader =  compile ps_1_1 pmain();
    }
}         

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-11-11 17:09:00 | 显示全部楼层

Re:好不容易编个d3d 的 顶点shader 但运行就是没效果 什么

先使用RenderMonkey一类的测试你的Shader比较好吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 15:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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