本项目代码基于VC++实现了对一个球体的光线跟踪渲染算法,包含环境光,漫反射和镜面反射。渲染结束后输出每个像素的RGB值,并用OPenGL的库函数加以显示。要成功运行本历程须进行 OPenGL的环境配置。不过,即便不能运行,核心部分的代码也是完全正确的,有详细注释,对初学者有很大参考价值。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-02-17 14:39 成功_对一个球的光线渲染实验
目录 0 2012-08-22 15:25 成功_对一个球的光线渲染实验Debug
文件 70144 2012-12-29 16:08 成功_对一个球的光线渲染实验Debug对一个球的光线渲染实验.exe
文件 507412 2012-12-29 16:08 成功_对一个球的光线渲染实验Debug对一个球的光线渲染实验.ilk
文件 920576 2012-12-29 16:08 成功_对一个球的光线渲染实验Debug对一个球的光线渲染实验.pdb
目录 0 2013-02-17 14:38 成功_对一个球的光线渲染实验ipch
目录 0 2013-02-17 14:38 成功_对一个球的光线渲染实验ipch对一个球的光线渲染实验-8b37c774
文件 15269888 2013-02-17 14:38 成功_对一个球的光线渲染实验ipch对一个球的光线渲染实验-8b37c774对一个球的光线渲染实验-233a3d8d.ipch
目录 0 2012-08-22 15:25 成功_对一个球的光线渲染实验对一个球的光线渲染实验
目录 0 2013-02-17 14:39 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debug
文件 96734 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugCL.read.1.tlog
文件 19324 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugCL.write.1.tlog
文件 33700 2012-09-16 14:59 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugDirLight.obj
文件 53991 2012-09-16 14:59 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugRay.obj
文件 17518 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugRaytracer.obj
文件 14591 2012-09-16 14:59 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugSphere.obj
文件 13982 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugcl.command.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink-cvtres.read.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink-cvtres.write.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1228-cvtres.read.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1228-cvtres.write.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1228.read.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1228.write.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1548-cvtres.read.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1548-cvtres.write.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1548.read.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.1548.write.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.3096-cvtres.read.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.3096-cvtres.write.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.3096.read.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debuglink.3096.write.1.tlog
............此处省略68个文件信息
#include“DirLight.h“;
#include
double max(double a1double a2)
{
if(a1>a2)
return a1;
else
return a2;
}
DirLight::DirLight()
{
Position=vector(00260);
Direction=vector(-1-10);
Direction.normailize();
Ambient=vector(0.20.20.2);
Diffuse=vector(0.90.90.9);
Specular=vector(1.01.01.0);
}
DirLight::DirLight(vector posvector dirvector abtvector dfsvector spl)
{
Position=pos;
Direction=dir;
Ambient=abt;
Diffuse=dfs;
Specular=spl;
}
DirLight::~DirLight()
{}
void DirLight::setPosition(vector p)
{
Position=p;
}
void DirLight::setDirection(vector dir)
{
Direction=dir;
}
void DirLight::setAmbient(vector a)
{
Ambient=a;
}
void DirLight::setDiffuse(vector d)
{
Diffuse=d;
}
void DirLight::setSpecular(vector s)
{
Specular=s;
}
vector DirLight::getPosition()
{
return Position;
}
vector DirLight::getDirection()
{
return Direction;
}
vector DirLight::getAmbient()
{
return Ambient;
}
vector DirLight::getDiffuse()
{
return Diffuse;
}
vector DirLight::getSpecular()
{
return Specular;
}
vector DirLight::figAmbient(vector _material_Ka)
{
return Ambient*_material_Ka;
}
vector DirLight::figDiffuse(vector _Nvector _Lvector _material_Kd)
{
/*vector IdKd=Diffuse*_material_Kd;
double Ndotl=max(VecpmulVec(_N_L)0.0);
return IdKd*Ndotl;*/
double dot=VecpmulVec(_N_L)*0.2;
vector diffuse=vector(110)*vector(111)*dot;
return diffuse;
}
vector DirLight::figSpecular(vector _Nvector _Lvector _Vvector _material_Ksdouble _shininess)
{
/*vector IsKs=Specular*_material_Ks;
vector H=_L+_V;
H.normailize();
double NdotL= max(VecpmulVec(_N_L)0.0);
double NdotH=pow(max(VecpmulVec(_NH)0.0)_shininess);
if(NdotL<=0)
NdotH=0;
return IsKs*NdotH;*/
vector _R=_L-_N*VecpmulVec(_N_L)*2;
double dot=VecpmulVec(_V_R);
double spec=pow(dot20)*0.6;
vector specular=vector(111)*spec;
return specular;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-02-17 14:39 成功_对一个球的光线渲染实验
目录 0 2012-08-22 15:25 成功_对一个球的光线渲染实验Debug
文件 70144 2012-12-29 16:08 成功_对一个球的光线渲染实验Debug对一个球的光线渲染实验.exe
文件 507412 2012-12-29 16:08 成功_对一个球的光线渲染实验Debug对一个球的光线渲染实验.ilk
文件 920576 2012-12-29 16:08 成功_对一个球的光线渲染实验Debug对一个球的光线渲染实验.pdb
目录 0 2013-02-17 14:38 成功_对一个球的光线渲染实验ipch
目录 0 2013-02-17 14:38 成功_对一个球的光线渲染实验ipch对一个球的光线渲染实验-8b37c774
文件 15269888 2013-02-17 14:38 成功_对一个球的光线渲染实验ipch对一个球的光线渲染实验-8b37c774对一个球的光线渲染实验-233a3d8d.ipch
目录 0 2012-08-22 15:25 成功_对一个球的光线渲染实验对一个球的光线渲染实验
目录 0 2013-02-17 14:39 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debug
文件 96734 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugCL.read.1.tlog
文件 19324 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugCL.write.1.tlog
文件 33700 2012-09-16 14:59 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugDirLight.obj
文件 53991 2012-09-16 14:59 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugRay.obj
文件 17518 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugRaytracer.obj
文件 14591 2012-09-16 14:59 成功_对一个球的光线渲染实验对一个球的光线渲染实验DebugSphere.obj
文件 13982 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugcl.command.1.tlog
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
文件 2 2012-12-29 16:08 成功_对一个球的光线渲染实验对一个球的光线渲染实验Debugli
............此处省略68个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)