随笔分类 - CG
摘要:今天主要是在纸上推导了观察矩阵、正射投影矩阵和透视投影矩阵。 剩下还有两节 lesson,分别讲 shadow mapping 和 ambient occlusion——我先不打算做,因为 GAMES202 里面有相关的内容,等学完了再做。 做到这里花了 4 个晚上……比我预想得要快。
阅读全文
摘要:TL;DR 移除了 fRange 函数。 实现了 Z-Buffer 算法——可以正确处理遮挡关系了! 引入了可编程 Shader(目前仅支持顶点着色器和片段着色器)。 引入了透视除法、NDC 和视口变换 (这些都是顶点着色器连带的东西,所以顺便实现了) 把 Model 封装成类,将模型的加载和渲染解
阅读全文
摘要:绘制线框三角形 def triangleWireframed(self, v0, v1, v2, color): self.line(v0[0], v0[1], v1[0], v1[1], color) self.line(v1[0], v1[1], v2[0], v2[1], color) sel
阅读全文
摘要:先前代码改动 给 setPixel 增加了边界检测。(之后这部分可能会再修改,因为目前是直接在屏幕坐标系上操作,还没有透视除法、NDC 之类的东西) def setPixel(self, x, y, color): x = int(x) y = int(y) if x >= 0 and x < se
阅读全文
摘要:Repo 引言 最近在上学校开设的《计算机图形学研究进展 / Advances in Computer Graphics》,打算同步学习 GAMES202……听起来非常美好,但我突然发现一件恐怖的事情——自己图形学的基础知识都忘得差不多了! 因此我决定跟着 TinyRenderer 的教程做一遍,当
阅读全文
摘要:之前做 CG 课 lab2 的时候遇到了如标题所示的问题,当时并不知道原因。不久前又一次遇到该问题,这次我决定把它搞明白。 我使用 RenderDoc 对出错的部分进行了 profiling,发现传递给 GPU 的 uniform 变量 viewMatrix 里面有大量的 NaN 项,考虑到我的观察
阅读全文