自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 更换blog

接下来的博客会在个人博客。

2024-11-12 23:25:21 269

原创 Ray_Tracing_The_Rest_of_Your_Life

这一部是优化之前的渲染,我们之前的渲染有很多噪声,我们只有提高采样点数量才行,但是这会降低性能,那么如何才能在性能和画面做权衡?

2024-10-09 23:21:06 1113

原创 Ray_Tracing_The_Next_Week下

然后在ray_color()求得交点的uv后,应该调用value()获取uv对应的颜色,这里由于继承体系,我们将从材质获取纹理添加getTexture()的虚函数,以便动态的调用纹理的value()定义一个轴对齐xy方向的平面,x0,x1,y0,y1,z,首先射线方程仅看z值,求得t,然后再分别将t带入xy的射线方程,即可求出xy,那么当xy在范围内,那么就是相交的。我们创建image_texture的图片纹理,它的颜色值是通过uv坐标从data*纹理获取的,并且我们的球体应用这个新纹理。

2024-10-05 22:13:25 492

原创 Ray_Tracing_The_Next_Week上

我们还需要一个运动中的物体,和普通非运动球体来说,其实就多了center(double time)函数,负责线性插值在time时刻下的球体运动的位置,我们传入r.time()也就是光线自己的时间点。并且我们直到光线的表示,那么x0 = Ax + to * BX,光线从起点A,经过to时间延B方向,到达轴对齐x的某个平面xO,那么我们可以表示to和t1。每一条光线都拥有自己存在的一个时间点。动态模糊在摄影中就是快门的速度慢,捕捉光的时间长,物体运动时进行捕捉成像,拍出来的结果是这个运动过程每一帧的平均值。

2024-10-04 23:58:35 384

原创 GAMES101(19节,相机)

不同于合成渲染,相机是捕捉成像,但是在合成渲染时,有时也会利用相机的成像原理(比如最基础的fov,特效动态模糊 / 景深等),这时会有涉及很多专有名词,以及基础成像方式,因此我们要储备摄像机基础知识。

2024-10-04 14:00:24 1099

原创 Ray_Tracing_In_One_Weekend下

我们看到的球体比较暗,这其实和计算的数据不符合,因为屏幕CRT2.2会自动校正颜色,因此我们应该进行gamma校正(1/2.2次幂),让我们看到实际颜色值。为了模拟漫反射材质,我们生成随机反射方向,这个方向根据,交点的法线终点坐标为中心的单位球体内,生成随机点,求得反射光线(随机点 - 交点)还有一种方式,选取随机反射方向:通过在交点取单位球体的随机方向,然后再和物体的normal点乘,判断是否在物体表面的半球。因为vn方向相反,因此点乘cos结果为负数,即在n的反向方向的投影,因此需要加符号。

2024-10-03 13:10:50 1380

原创 Ray_Tracing_In_One_Weekend上

首先指定p3和分辨率(宽高)和最大颜色值,然后设置每个像素颜色值,首先在0---1之间,然后转为0---255的颜色。在不使用 opengl (渲染图像)/ std_image.h(加载图像)等库的情况下,怎样通过代码自定义图像?首先p3表明颜色是ASCII码格式,接着指定分辨率,和最大颜色值之后下面的都是RGB颜色值 ,我们可以运行exe,并将cout输出的内容写入到PPM格式的文件中。有一种PPM格式的图像,可以通过定义数据生成简单的图像。我们已经有了所有数据,通过新建终端,然后执行命令。

2024-10-02 11:39:42 788

原创 GAMES101(作业8)

模拟绳子动画,包括基于物理的,和非物理的,应该修改的函数是:rope.cpp 中的void Rope::simulateEuler(... Rope::rope(...),,void Rope::simulateVerlet(...)

2024-09-29 19:57:33 494

原创 GAMES101(作业7)

实现path Tracing,仅修改castRay(const Ray ray, int depth)函数,在其中实现 Path Tracing 算法。

2024-09-26 08:19:21 581

原创 GAMES101(作业4~6)

• global.hpp:全局函数和变量。

2024-09-21 22:07:19 767

原创 GAMES101(2~3作业)

栅格化:在屏幕绘制一个实心三角形,函数 rasterize_triangle(const Triangle& t),需要找出当前三角形的边界框,然后遍历像素,查找当前像素是否在三角形内static bool insideTriangle(),深度测试:如果在三角形内,代码已经自动计算z值(插值得到)存储在z_interpolated中,如果当前点更靠近相机,需要请设置像素颜色(使用 set_pixel 函数)并更新深度缓冲区。

2024-09-14 16:13:47 1364

原创 GAMES101(0~1作业)

整体课程相比于OpenGL还是偏底层的,手写MVP矩阵,手写Bresenham算法绘制线,和三角形,计算齐次坐标等,并没有opengl封装好的接口。

2024-09-05 14:19:06 1418

原创 Hazel engine demo --2D

配置output路径:$(SolutionDir)+新建目录:文件夹名+新建目录。$(ProjectName)\:项目名。仓库克隆到文件夹中:建立仓库,在文件夹打开终端cmd:git clone http……fatal: unable to access:在github中传入项目时,再次上传,网络不好。github项目克隆到gitee上(网络):在gitee创建仓库,复制http。使用git下载到新建文件夹中、

2024-01-20 20:42:19 884

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除