-
光线跟踪
首先确定眼睛的位置和视线方向。然后确定从眼睛出发通过每个象素中心的光线方程。通过该光线求光线与场景中物体的最近交点。 若有交点,首先产生阴影测试光线,它是连接交点与光源的光线,然后计算该交点与光源间是否有阻挡物,如果没有则计算该点的Phong模型分量,若有阻挡物则不计算。若交点处的场景为反射表面,则产生反射光线,将此光线继续与场景求交。若交点处的场景具有透明性,则产生透射光线,将此光线继续与场景求交。 若无交点,则返回默认值。 最后将颜色填入相应象素中。 递归结束条件: 1.递归深度:预先设定一个递归深度值 2.光亮度值:如果反射或折射光线的光亮度贡献太小,可以忽略不计,则停止递归 本系统选择VS2008平台开发,采用MFC单文档结构作为系统的整体架构。其中,Object类为场景中物体的基类,从中派生出两个子类:Plane类和Sphere类,分别表示平面类和球面类。 Colour结构表示颜色,包含r,g,b三个颜色分量。 Material结构表示场景中物体的材质属性,包含,,三个分量,分别表示物体的漫反射系数、镜面反射系数和折射系数。 Vect结构表示场景中的点坐标。 Ray类表示光线或光源,当它表示光线时,它包含原点origin和单位方向向量dir;当它表示光源时,它还包含了光源颜色colour。 Hit类表示交点类,它包含交点处的法向量normal,交点所处的物体表面surface,交点系数t。 Scene类表示场景类,它包含物体指针数组objects,光源指针数组lights,场景物体个数nObjectCount,场景光源个数nLightCount。 CSceneLightDlg类为场景光源配置对话框,它里面显示了当前场景中的所有光源,用户可以在对话框中继续添加光源。 CSceneObjectDlg类为场景物体配置对话框,它里面显示了当前场景中的所有物体,用户可以在该对话框中继续添加物体。 CScenePictureDlg类为照片配置对话框,它里面显示当前人眼的位置、照片的大小、位置和分辨率。用户可以对该设置进行修改。 CRayTraceView类为框架的视图类,负责图片的显示。我在其中包含了一个Scene对象,光线跟踪的具体实
- 2022-03-19 03:38:04下载
- 积分:1
-
五角星 但是不是可以随鼠标移动
五角星 但是不是可以随鼠标移动-five-pointed star but is not allowed to move the mouse movement! !
- 2022-02-03 08:17:35下载
- 积分:1
-
//Name:geotrans.c//Purpose: To perform geometric transform//Author: phoenix, CS,...
//Name:geotrans.c//Purpose: To perform geometric transform//Author: phoenix, CS, TshingHua, Beijing, P.R.C.//Email: bjlufengjun@www.163.net or lufengjun@hotmail.com//Date:April 3, 1998
- 2023-04-08 18:10:04下载
- 积分:1
-
使用matlab进行边缘检测,部分来源于网上,做了一些修改,希望对大家有帮助...
使用matlab进行边缘检测,部分来源于网上,做了一些修改,希望对大家有帮助-Using matlab to edge detection, and some from the Internet, do some modifications, in the hope that we have to help
- 2022-08-06 11:24:42下载
- 积分:1
-
d3dx9_25他不玩游戏也容易解决
d3dx9_25 玩游戏缺他的 轻松解决也-d3dx9_25 his lack of playing games are also easy to solve
- 2023-04-26 13:40:04下载
- 积分:1
-
Computer Graphics Principle and Algorithm Tutorial (Visual C++ Version) Three
计算机图形学原理及算法教程 (Visual C++版)
三维变换-Computer Graphics Principle and Algorithm Tutorial (Visual C++ Version) Three-dimensional Transform
- 2022-08-25 04:03:45下载
- 积分:1
-
Visual C# 2005 编写的很精致实用的电子钟
Visual C# 2005 编写的很精致实用的电子钟-Visual C# 2005 was exquisitely prepared by the practical electronic bell
- 2022-05-15 23:40:43下载
- 积分:1
-
我们平常玩的飞机射击类游戏,这其实很简单,在加载上图片后,实现精灵类碰撞检测,每按键一次,图片显示相应的动作,真的很简单,希望你能从这个简单的游戏获得启发...
我们平常玩的飞机射击类游戏,这其实很简单,在加载上图片后,实现精灵类碰撞检测,每按键一次,图片显示相应的动作,真的很简单,希望你能从这个简单的游戏获得启发-To play our usual type of plane shooting games, this is a very simple add-on in the picture, the type of collision detection Elven implementation, each button once, the motion picture shows, really easy, I hope you benefit from this simple game get inspired
- 2022-04-13 04:30:14下载
- 积分:1
-
matlab exprience,M文件,实验代码
matlab exprience,M文件,实验代码-matlab exprience, M files, experiment code
- 2022-03-25 16:48:04下载
- 积分:1
-
均值漂移算法的演示
mean shift功能演示,实现图像分割,具体请看效果-the demonstration of the mean shift algorithm
- 2023-01-15 17:40:05下载
- 积分:1