2020年3月31日
摘要: 好了,终于到了可以看到图片的环节了。之前的类,你一定要实现好了。所有关于World类的报错,现在我们一个一个解决来了。 先看看World类的声明: #pragma once #ifndef __WORLD_HEADER__ #define __WORLD_HEADER__ #include "geo 阅读全文
posted @ 2020-03-31 04:19 dalgleish 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 再等等,把这个定义完了,就到了我们展示代码环节了。 这个类是多个球体的碰撞检测的,其实就是单个球体的改装版本,基本一摸一样的。 类定义: #pragma once #ifndef __MULTISPHERE_HEADER__ #define __MULTISPHERE_HEADER__ #inclu 阅读全文
posted @ 2020-03-31 04:07 dalgleish 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 针对于单个球体的碰撞,其实和多个球体一样的,只是我修改了书上的代码,定义了这么多类,终于到头了。马上就要展示奇迹的时候了。 类定义: #pragma once #ifndef __SINGLESPHERE_HEADER__ #define __SINGLESPHERE_HEADER__ #inclu 阅读全文
posted @ 2020-03-31 04:05 dalgleish 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 这个类主要是用于检测光线是否穿过球体。是核心,所有的碰撞都继承于这个类,书上也阐述了很多。详细就看书。 类定义: #pragma once #ifndef __TRACER_HEADER__ #define __TRACER_HEADER__ #include "../../Types.h" cla 阅读全文
posted @ 2020-03-31 04:03 dalgleish 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 这个类是球体,也就是一会要显示的球体了。这个类继承于Geometrics类,并实现了自己的碰撞检测,碰撞原理,书上也说的很清楚了啊,大家多看。然后对照代码就明白了。 类定义: #pragma once #ifndef __SPHERE_HEADER__ #define __SPHERE_HEADER 阅读全文
posted @ 2020-03-31 03:59 dalgleish 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 首先我的结构图是这样的,当然你自己喜欢怎么改都行。这个不影响,只要包含到正确的头文件就行。 geometrics是几何类的基础,所有几何的碰撞都是从这个类继承下来的。书中也说的很清楚了,大家可以阅读对应章节。 类声明: #pragma once #ifndef __GEOMETRICS_HEADER 阅读全文
posted @ 2020-03-31 03:57 dalgleish 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 这个类主要是记录了所有跟视图窗口有关的数据,用于显示。 类声明: #pragma once #ifndef __VIEWPLANE_HEADER__ #define __VIEWPLANE_HEADER__ #include "../../Types.h" class Sampler; class 阅读全文
posted @ 2020-03-31 03:52 dalgleish 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 这个类主要是用于记录碰撞数据的类,书中已经说的很清楚了。这个类之后会慢慢扩展,会在本随笔中扩展,先定义简单的,方便编译看看效果。 类声明(World是之后主程序中的类,最后测试时再实现): #ifndef __SHADEREC_HEADER__ #define __SHADEREC_HEADER__ 阅读全文
posted @ 2020-03-31 03:46 dalgleish 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 定义光线,书中已经有原理。 类声明: #ifndef __RAY_HEADER__ #define __RAY_HEADER__ #include "geometry.h" class Ray { public: Ray(); ~Ray(); Ray(const Point3& ori , cons 阅读全文
posted @ 2020-03-31 03:39 dalgleish 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 这个类主要是颜色操作,操作详细原理如下图: 类声明: class RGBColor { public: RGBColor(); ~RGBColor(); RGBColor(ldouble a); RGBColor(ldouble red, ldouble green, ldouble blue); 阅读全文
posted @ 2020-03-31 03:35 dalgleish 阅读(1153) 评论(0) 推荐(0) 编辑