游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1639|回复: 4

光照的一些不解

[复制链接]

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
发表于 2009-3-23 22:38:00 | 显示全部楼层 |阅读模式
这几天一直很迷惑,都是关于shader的,我列了一些,希望大家帮助我解决下,谢谢了

一: 对于光照的衰减问题,光照会随距离的大小而减弱,但是他的衰减函数大家一般怎么写,还有就是, diffuse,
specular的衰减系数是一样的吗??
二: 材质问题,D3D中是这样定义的
typedef struct _D3DMATERIAL9 {
    D3DCOLORVALUE Diffuse;
    D3DCOLORVALUE Ambient;
    D3DCOLORVALUE Specular;
    D3DCOLORVALUE Emissive;
    float Power;
} D3DMATERIAL9;
那么在实际运用中,我们应该怎么做了,很乱,希望大家告诉些意见或者是在什么地方可以找到解决的方法
,谢谢了

42

主题

140

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2009-3-23 22:45:00 | 显示全部楼层

Re:光照的一些不解

一般用线性衰减,值为0.001~0.005左右.diffuse 和 specular是被照物体的属性, 衰减是光源的属性,衰减只是光的强度减弱了,计算还是按原来的

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-3-23 23:38:00 | 显示全部楼层

Re:光照的一些不解

ls说的对,衰减的只是光源,不是计算方法

真实世界里,点光源强度以 1/(d*d) 衰减,但是使用这个公式,通常不会得到你想要的结果-_-
更常见的公式是 1/( a + b*d + c*d*d),固定管线的dx和ogl都是按照这个公式来计算衰减
abc是衰减参数,可以设置为任何你觉得合适的数,这个公式有2个有点:1,可以更灵活的控制衰减值,2,得到更真实的衰减效果
你也可以用其他任何你觉得合适的公式,只要满足所需要的视觉效果就可以
物理上正确的公式视觉上不一定正确,视觉上正确的,物理不一定正确,呵呵

材质需要根据你最终的所选择的光照模型或者说渲染方法来定义
比如你的光照模型需要n种元素(diffuse map,normal map,specular fact,emissive,noise map.....)作为输入,那么材质中就必须包含这n种元素,并没有一定的标准

for quick start:
http://wiki.gamedev.net/index.php/D3DBookighting

dig deeper:
《real-time rendering, third edition》(传说是有电子版了)的5,7,8章有你想知道的关于光照的一切理论
如果找不到那么
《Advanced.Lighting.And.Materials.With.Shaders》的2,4~7章也很不错

11

主题

650

帖子

651

积分

高级会员

Rank: 4

积分
651
发表于 2009-3-23 23:50:00 | 显示全部楼层

Re:光照的一些不解

realtime rendering 3rd确实有电子版 因为我正在看

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2009-3-25 13:22:00 | 显示全部楼层

Re:光照的一些不解

resplendence,可以发我看下吗,谢谢了,我的油箱是kyo_forever@sina.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 00:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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