游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2216|回复: 5

HLSL精通者进---》Specular Lighting疑问

[复制链接]

13

主题

74

帖子

74

积分

注册会员

Rank: 2

积分
74
发表于 2007-5-11 18:20:00 | 显示全部楼层 |阅读模式


有个疑问:VS_OUTPUT 里面的 color0 : COLOR0, color1 : COLOR1
在PS里面计算的时候,最终的结果是不是这样?

ps_out.color = tex2d(sam, texcoord) * ps_in.color0 + ps_in.color1 ?
这么出来的值和DX的固定管线渲染出来的效果不一样。

谁能提供一些DX中有关Lighting计算的资料?
在此先谢了

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2007-5-11 18:31:00 | 显示全部楼层

Re:HLSL精通者进---》Specular Lighting疑问

不是这样的,Cg教程里很多,去看下就清楚了.

29

主题

354

帖子

359

积分

中级会员

Rank: 3Rank: 3

积分
359
QQ
发表于 2007-5-11 19:31:00 | 显示全部楼层

Re:HLSL精通者进---》Specular Lighting疑问

去nVidia的网站上下点相关资料看看吧,不过都是英文的.

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2007-5-11 19:49:00 | 显示全部楼层

Re:HLSL精通者进---》Specular Lighting疑问

float3 L = normalize(lightPosition - P);
float diffuseLight = max(dot(N, L), 0);
float3 diffuse = Kd * lightColor * diffuseLight;

float3 V = normalize(eyePosition - P);
float3 H = normalize(L + V);
float specularLight = pow(max(dot(N, H), 0), shininess);

if(diffuseLight <= 0) specularLight = 0;
float3 specular = Ks * lightColor * specularLight;

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2007-5-11 23:23:00 | 显示全部楼层

Re:HLSL精通者进---》Specular Lighting疑问

http://blog.csdn.net/soilwork/archive/2007/01/14/1482661.aspx

13

主题

74

帖子

74

积分

注册会员

Rank: 2

积分
74
 楼主| 发表于 2007-5-14 11:25:00 | 显示全部楼层

Re:HLSL精通者进---》Specular Lighting疑问

非常感谢所有回复贴子的朋友,

有关Lighting的计算公式是比较清楚的,我使用的是Vertex Lighting,高光的计算是在Vertex Shader中完成的。Pixel Shader中仅仅是把最终的颜色混合输出。使用的方法就是如上提到的:
ps_out.color = tex2d(sam, texcoord) * ps_in.color0 + ps_in.color1;
但是结果和固定管线渲染出来的不同,难道FFP使用的是Pixel Lighting方式?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 11:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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