-
光线跟踪
首先确定眼睛的位置和视线方向。然后确定从眼睛出发通过每个象素中心的光线方程。通过该光线求光线与场景中物体的最近交点。 若有交点,首先产生阴影测试光线,它是连接交点与光源的光线,然后计算该交点与光源间是否有阻挡物,如果没有则计算该点的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
-
add photo effects, including : DissolveWipe DownWipe UpWipe LeftFadeWater Colore...
添加图片效果,包含:DissolveWipe DownWipe UpWipe LeftFadeWater Coloretc -add photo effects, including : DissolveWipe DownWipe UpWipe LeftFadeWater Coloretc
- 2022-05-07 04:36:23下载
- 积分:1
-
socket description using socket in socket
socket description using socket in socket
- 2022-03-14 20:29:15下载
- 积分:1
-
图像处理的一种方法,图像进行傅立叶时所需要的源程序,得到的图像和原图像之间有清晰的比较...
图像处理的一种方法,图像进行傅立叶时所需要的源程序,得到的图像和原图像之间有清晰的比较-image processing method, Fourier images when needed source, the images and the original image between a clear comparison
- 2022-02-13 04:13:19下载
- 积分:1
-
delphi编写的快速傅立叶转换源代码
delphi编写的快速傅立叶转换源代码-prepared by the Fast Fourier Transforms source code
- 2022-03-13 02:28:29下载
- 积分:1
-
卡尔三角形,在点随机数
解三角形的vc++6版本,并可以随机产生在指定范围内的数值-cal triangle,and randam numbers in point
- 2022-07-27 04:50:04下载
- 积分:1
-
网上下的。。 视频抄表。。。。。。。。。。。。没用过
网上下的。。 视频抄表。。。。。。。。。。。。没用过-Online under. . Video meter reading. . . . . . . . . . . . Not used
- 2022-07-28 01:29:20下载
- 积分:1
-
三维网格面的切割程序,在linux下平台开发,国外博士课题的组成部分...
三维网格面的切割程序,在linux下平台开发,国外博士课题的组成部分-surface cutting
- 2022-04-20 15:57:47下载
- 积分:1
-
Chapter 7 Rational B
Chapter 7 Rational B-spline (NURBS) Surfaces
basis.c tbasis.c Calculates the B-spline basis functions.
frbsurf.c tfrbsurf.c Calculates and test the fast B-spline surface algorithm.
knot.c tknot.c Calculates an open knot vector.
rbspsurf.c trbsurf.c Calculates a rational B-spline (NURBS) surface.
rbsurf.h Header file for fast rational B-spline surface program
sumrbas.c Calculates the Sum function for a rational B-spline surface.
chap7all.zip ZIP file for all of Chapter 7.
chap7all.tar.gz UNIX tar file for all of Chapter 7.
- 2022-11-08 10:05:03下载
- 积分:1
-
本原代码集是我对计算机图形学的编程实践,包括画直线、反走样直线、画圆、画椭圆、画矩形、画多边形、矩形填充、多边形填充、3D变换、光照、贴图等...
本原代码集是我对计算机图形学的编程实践,包括画直线、反走样直线、画圆、画椭圆、画矩形、画多边形、矩形填充、多边形填充、3D变换、光照、贴图等
-primitive code is the set of computer graphics programming practice, including line drawing, anti-aliasing line, Circle. painted oval, rectangular painting, drawing polygon, rectangle filling, polygon filling, 3D transformation, lighting, texture, etc.
- 2022-06-17 03:07:58下载
- 积分:1