游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2667|回复: 8

HLSL语法问题。

[复制链接]

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2008-9-10 19:10:00 | 显示全部楼层 |阅读模式
  看SDK例子时,有一句很迷茫..

  vAnimatedPos += float4(vNormal, 0) * (sin(g_fTime+5.5)+0.5)*5;

  关键是 float4(vNormal, 0) 这句, float4()不是表示一个4D向量吗? 怎么里面只有2个参数啊? 问一下这句话究竟做了什么操作啊? 谢谢了!

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-9-10 19:17:00 | 显示全部楼层

Re:HLSL语法问题。

说明只用x,y分量,对这两个分量进行操作。

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2008-9-10 20:35:00 | 显示全部楼层

Re:HLSL语法问题。

LS的能说清楚些吗? 对这两个分量进行什么操作啊? 麻烦给个例子好吗? 谢谢了!

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2008-9-10 20:37:00 | 显示全部楼层

Re:HLSL语法问题。

vNormal是个3D向量啊,这样操作不是乱着的吗?

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2008-9-10 20:57:00 | 显示全部楼层

Re:HLSL语法问题。

你可以传4个float,也可以传1个vector+1个float,这同样是4个分量。

有点儿类似c++的构造函数重载。

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2008-9-10 21:09:00 | 显示全部楼层

Re:HLSL语法问题。

谢谢LS的回答,这次懂了..

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-9-10 21:30:00 | 显示全部楼层

Re: Re:HLSL语法问题。

hejinjiang: Re:HLSL语法问题。

vNormal是个3D向量啊,这样操作不是乱着的吗?

早说啊,我还以为是个分量呢,不过,HLSL语法里也确实有只对某些分量操作的语法,比如:
vector aaa(1,2,3,4);
float2 bbb(2,2);
fff+=aaa(x,z);
结果:fff.x=3,fff.y=5;
[em13]

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-9-12 13:40:00 | 显示全部楼层

Re:HLSL语法问题。

vNormal不是float3么?再加个0不就成了float4么?其实这句话相当于float4(vNormal.x, vNormal.y, vNormal.z, 0)

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2008-9-12 13:46:00 | 显示全部楼层

Re:HLSL语法问题。

虽然已经懂了..还是谢谢你..
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 06:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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