目录

作业完整代码地址:

作业0:

作业1:

展示:

普通要求:

提高项:

作业2

展示:

未抗锯齿:

抗锯齿:

普通要求:

提高项:

作业3:

展示:

normal:

BlinnPhone:

texture:

bump:

displacement:

textureBilinear:

普通要求:

提高项:

作业4:

展示:

未抗锯齿:

抗锯齿:

普通要求:

提高项:

作业5:

展示:

要求:

作业6:

展示:

普通要求:

提高项:

作业7:

展示:

spp=16:

spp=1 Without MutiThread:

spp=1 With MutiThread:

spp=1 With MutiThread And Microfacet:

普通要求:

提高项:

多线程加速:

Microfacet:

作业8:

要求:

大作业:

新坑:


作业完整代码地址:

https://github.com/1393650770/Games101-Homework

包含作业零、作业一、作业二、作业三、作业四、作业五、作业六、作业七、作业八、大作业

作业0:

作业1:

展示:

普通要求:

提高项:

作业2

展示:

未抗锯齿:

抗锯齿:

以下代码一个图截图截不完,就只粘贴关键代码,需要的可以前往文章开头的作业地址查看

普通要求:

提高项:

作业3:

展示:

normal:

BlinnPhone:

texture:

bump:

displacement:

textureBilinear:

以下代码一个图截图截不完,就只粘贴关键代码,需要的可以前往文章开头的作业地址查看

普通要求:

rasterize_triangle(const Triangle& t) in rasterizer.cpp:

get_projection_matrix() in main.cpp:

phong_fragment_shader() in main.cpp:

texture_fragment_shader() in main.cpp:

bump_fragment_shader() in main.cpp:

displacement_fragment_shader() in main.cpp:

提高项:

作业4:

展示:

未抗锯齿:

抗锯齿:

普通要求:

bezier:

recursive_bezier:

提高项:

作业5:

展示:

要求:

Renderer.cpp 中的Render():

Triangle.hpp 中的rayTriangleIntersect():

作业6:

展示:

普通要求:

Render() in Renderer.cpp:

Triangle::getIntersection in Triangle.hpp:

IntersectP(const Ray& ray, const Vector3f& invDir,

const std::array<int, 3>& dirIsNeg) in the Bounds3.hpp:

getIntersection(BVHBuildNode* node, const Ray ray)in BVH.cpp:

提高项:

BVHBuildNode* BVHAccel::recursiveBuild(std::vector<Object*>objects):

这里了一些简化

作业7:

展示:

spp=16:

以下展示均限定了只允许最多弹射两次

spp=1 Without MutiThread:

spp=1 With MutiThread:

spp=1 With MutiThread And Microfacet:

普通要求:

castRay(const Ray ray, int depth)in Scene.cpp:

提高项:

多线程加速:

在linux下采用openmp,多一张图像进行按y轴分层然后每个线程渲染一层

因为我的虚拟机给了四核,大概速度提升可以看上面的图进行比较(大概3-4倍)

Microfacet:

这里材质GGX直接用了LearnOpenGL里面的

(就只粘贴关键代码,完整代码需要的可以前往文章开头的作业地址查看)

作业8:

作业8兴趣不大,而且有一些网址连接不上下不了库,所以这里只展示代码了。

要求:

rope.cpp 中的Rope::rope(...):

rope.cpp 中的void Rope::simulateEuler(...):

rope.cpp 中的void Rope::simulateVerlet(...) :

大作业:

鉴于大作业是开放选题,分享几个自己做了或者正在做的小玩意儿。

Sph 水模拟:

UE Niagara---SPH流体模拟_This is MX的博客-CSDN博客

这个的后续可以关注本博客,不久之后就会进行分享

CSM(Cascaded Shadow Maps):

算法复现:OpenGL-ShadowMap/PCSS/CSM_This is MX的博客-CSDN博客

后续还有兴趣的选题:SSAO,SSGI,SSR,光追降噪,毛发渲染等

新坑:

写了这些作业发现自己的光追知识还是太少了,之后打算写个软光追渲染器。欢迎持续关注,哈哈哈,希望坑能填完。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐