游戏开发论坛

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

求救:About Playing Morphing by vs1.1

[复制链接]

3

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2007-4-22 10:27:00 | 显示全部楼层 |阅读模式
最近在学习D3D中Morphing by vs1.1代码写好了,所有函数都成功执行
可结果什么也看不到,郁闷啊,哪为朋友这方面知识,可否指点下,关键信息代码如下:

//////////////////////////////////////////////////////////////////
    DWORD Decl[] =
    {
        D3DVSD_STREAM( 0 ),
        D3DVSD_REG( 0, D3DVSDT_FLOAT3 ), // Position of first mesh
        D3DVSD_REG( 3, D3DVSDT_FLOAT3 ), // Normal
        D3DVSD_REG( 7, D3DVSDT_FLOAT2 ), // Tex coords
        D3DVSD_STREAM( 1 ),
        D3DVSD_REG( 1, D3DVSDT_FLOAT3 ), // Position of second mesh
        D3DVSD_REG( 4, D3DVSDT_FLOAT3 ), // Normal
        D3DVSD_REG( 8, D3DVSDT_FLOAT2 ), // Tex coords
        D3DVSD_END()
    };
//////////////////////////////////////////////////////////////////
; Inputs:   v0   = Posizione
;           v3   = Normali
;           c0   = (0,0.5,xxx,xxx) costanti
;           c1-4 = WorldView matrix
;           c5-9 = WorldViewProjection matrix
;           c9   = Light/material color
;           c10  = Light direction (in view space)

vs.1.1                             ; Shader version 1.0
mul r1  , v0 ,c0.z
mul r2  , v1 ,c0.w
add r3  , r1 ,r2
m4x4 oPos, r3, c5           ; Compute projected position

mul r1  , v3 , c0.z
mul r2  , v4 , c0.w
add r3  , r1 , r2
m3x3 r1 , r3 , c1           ; r1 = View space normal
dp3  r2 ,-r1 , c10          ; r2 = Diffuse lighting calc
max oT0.x, r2, c0.x         ; Clamp r2 to 0,; Tex coord 0 is (r2,0.5)
   

;mul r1  , v7 ,c0.z
;mul r2  , v8 ,c0.w
;add r3  , r1 ,r2
mov  oT1.xy ,  v8
mov     oD0  , c9                 ; Diffuse color = c9
//////////////////////////////////////////////////////////////////
g_pD3DDevice->SetTexture( 0, g_pMeshTextures);
   g_pD3DDevice->SetVertexShader( hShader );
   g_pD3DDevice->SetStreamSource( 0, g_pVertexBuffer, sizeof(CUSTOMVERTEX) );
   g_pD3DDevice->SetStreamSource( 1, g_pVertexBuffer_A, sizeof(CUSTOMVERTEX) );
   g_pD3DDevice->SetIndices( g_pIndexBuffer, 0 );
   g_pD3DDevice->DrawIndexedPrimitive( D3DPT_TRIANGLELIST,0,g_FacesCount*3,0,g_FacesCount);


// ------以下是整个程序运行的调试信息,表明每个函数运行正常----------------------------

[10:18:58] Support VS1.1
[10:18:58] Basic Initialize Ok!
[10:18:58] Load Second Textures Fair!
[10:18:58] Value of FVF is 274:.
[10:18:58] Load First Mesh Ok!
[10:18:58] Load Second Mesh Ok!
[10:18:58] Constant Set Over!
[10:18:58] LoadShader Run Here(Line 171 in Main.cpp)!
[10:18:58] All Data Ok!


// - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -- - - - - - - - -
g_pVertexBuffer和g_pVertexBuffer_A的数据也确定符合要求的,就是不知道哪里出了什么问题
请高手一定指点啊,为了这个技术我整整耗了一个月了,我太需要这个技术了,在此我谢了!

3

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2007-4-22 10:29:00 | 显示全部楼层

Re:求救:About Playing Morphing by vs1.1

忘了我的QQ:545436663。

0

主题

14

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2007-4-23 12:26:00 | 显示全部楼层

Re:求救:About Playing Morphing by vs1.1

我是初学者,我自己调试也老出这样的问题,要不就是坐标转换没写对,图像没画在屏幕里,要不就是没设光源,要不就是material设置错误.楼上汇编写的,看不懂,呵呵,只会看hlsl写的.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 17:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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