游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1530|回复: 1

关于光照算法问题(3D游戏编程大师技巧)

[复制链接]

10

主题

27

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2005-11-19 14:23:00 | 显示全部楼层 |阅读模式
最近在看3D游戏编程大师技巧,写的真的很棒
不过在光照函数这张遇到问题咯
谁也看过这本书的大大,帮偶解决一下
我只列出关键代码
//无穷远光源
float i;//强度

VECTOR4D u,v,n;

VECTOR4D_Build(&obj->vlist_trans[vindex_0],
                        &obj->vlist_tran[vindex+1],&u);

//散射公式
//Itotald=Rsdiffuse*Idiffuse*(n.l)     Rsdiffuse是漫反射颜色  Idiffuse是光源的散射光强度
//法线n与光照L的点积
dp=VECTOR4D_Dot(&n , &lights[curr_light].dir);
if(dp>0)
{
//乘128是避免浮点计算
   i=128*dp/nl;//归一化dp?为什么要归一化这不懂。。。
  //将每个分量与多边形颜色相乘,并除以256,以确保为0-255之间
    r_sum+=(lights[curr_light].c_diffuse.r * r_base* i) / (256*128);

//问题就在这,如果说dp=(n.l),那么r_base=Rsdiffuse?,c_diffuse.r=Idifuse?
//r_base是物体上的颜色,书中说颜色本身就是反射系数
//我的理解是否正确?好象只有这样理解才能跟公式对应咯~~~
    g_sum+=..............;
   b_sum+=..................;
}

6

主题

46

帖子

46

积分

注册会员

Rank: 2

积分
46
发表于 2006-4-27 08:39:00 | 显示全部楼层

Re:关于光照算法问题(3D游戏编程大师技巧)

请问一下楼主,你可有本书的光盘,我因为不小心给丢了,能否给一下代码,E-Mail:sentball@163.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 08:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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