游戏开发论坛

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

请问,怎么才能在顶点里面使用4个浮点数作为DiffuseColor

[复制链接]

78

主题

194

帖子

194

积分

注册会员

Rank: 2

积分
194
发表于 2006-5-3 23:18:00 | 显示全部楼层 |阅读模式
一般都使用一个DWORD作为颜色,使用FVF的时候也必须使用DWORD来表示颜色,但是我发现nebula2引擎里面使用4个浮点数来表示Color,在VertexDeclaration里面也明确使用了float4,后来我自己试了一下,发现DrawPrimitive总是出现InvalidCall的错误,貌似顶点颜色不能直接使用float4。所以我想求教一下,怎么样才可以使用float4作为diffuseColor. 谢谢~~

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2006-5-4 02:25:00 | 显示全部楼层

Re:请问,怎么才能在顶点里面使用4个浮点数作为DiffuseColor

我没用过nebula的引擎,但学过OpenGL,里面的颜色就用4个颜色分量表示,这些分量可以是float,也可以是byte。因为byte的区间为0~255,映射为float的0~1.0,所以,每个颜色分量就是(n / 255 * 1.0),这样每个分量使用这个公式就可以求得其在float中的颜色值,不知道说的对不对,请大家指正。

78

主题

194

帖子

194

积分

注册会员

Rank: 2

积分
194
 楼主| 发表于 2006-5-4 19:33:00 | 显示全部楼层

Re:请问,怎么才能在顶点里面使用4个浮点数作为DiffuseColor

后来我试了一下,如果我使用一个简单的vertexshader的话,就可以使用float作为颜色。但是不用shader就会出错。我不太明白为什么会这样阿~ 不知道是不是和我的显卡有关系
vsOut vsMain(vsIn v)
{
  VsOut ret;
  ret.diffuse = v.diffuse
  // 其它数据
  return ret;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 10:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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