在屏幕上画出一个实心三角形.
相较于hw1,多了一些内容,需要好好看下框架.
判断$(x,y)$对应的pixel否在三角形内部.
1 | static bool insideTriangle(int x, int y, const Vector3f* _v) |
先限定下founding box范围,提高效率
1 | void rst::rasterizer::rasterize_triangle(const Triangle& t) { |
在屏幕上画出一个实心三角形.
相较于hw1,多了一些内容,需要好好看下框架.
判断$(x,y)$对应的pixel否在三角形内部.
1 | static bool insideTriangle(int x, int y, const Vector3f* _v) |
先限定下founding box范围,提高效率
1 | void rst::rasterizer::rasterize_triangle(const Triangle& t) { |
总的来说,hw1是比较简单的.
本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵,只要记得上课时候给的公式,写进去就行.
注意,cos,sin等,需要的参数为弧度制(rad),而不是角度制
1 | Eigen::Matrix4f get_model_matrix(float rotation_angle) { |
先进行挤压,再进行正交投影得到结果
persp2ortho
ortho
projection = ortho * persp2ortho * projection;
1 | Eigen::Matrix4f get_projection_matrix(float eye_fov, |
最后得到的结果与官方答案不同,图形倒转了.这是zNear值导致的.
根据课上的内容,看向的是Z轴负半轴,Z<0;
而代码中,看向Z正半轴,Z>0;
小问题懒得修改了.
顺便学习了一下cmake的相关知识
[[07archive/tech/cmake|cmake]]
以下是goole code style guide.
把感兴趣或者觉得自己将来会用到的笔记收集起来,然后用一种标准化的方式去处理这些笔记,建立笔记之间的*联系*
。*连接*
is every thing
大脑:专注于创造,思考
卡片盒:储存细节和参考资料
我应该把zk部分放在哪里呢?
做临时笔记。 写在diary里面,主要白天微博阅读的内容,自己的一些想法
做文献笔记。读书时候的highlights和notes,导入到highlights文件夹下
做永久笔记。找到碎片化笔记之间的联系,找到一个主题,输出东西
每个笔记只包含一个想法,记笔记的时候要像写给别人看的一样:用整句话,解释来源,参考了什么,用词尽量准确、简单、清晰。做完之后,就可以把第一步的瞬时笔记扔掉,把第二步的文献笔记放进你的文献管理系统。你现在可以把它们忘掉了。所有重要的东西已经在你的卡片箱里了。
卡片盒所遵循的几个原则:
在实践书中这套工作流程时,给自己更多的耐心,在学习和实践方面交替进行多次
![[02literature/book/卡片笔记写作法:如何实现从阅读到写作#^9c11d4]]
用自下而上的流程
整理[[02literature/book/卡片笔记写作法:如何实现从阅读到写作]]笔记
记忆有两块:提取强度与储存强度。加强联系提升前者,加强记忆提升后者。具体手段是,zk与anki
排版有所不同,行内更适合短式子,行间更适合长式子或者公式推导
行内公式
${f(x)=anx^n+a{n-1}x^{n-1}+a_{n-2}x^{n-2}}+\cdots$
行间公式
^
表示上标, _
表示下标。
$\sum_i^na_i$
1 | $\sum_i^na_i$ |
GAMES:Graphics And Mixed Environment Symposium
101偏渲染
201偏动画
102偏建模
图像是由像素表达的离散的点
图形是具有数学表达的几何对象,矢量图
文字都是矢量图,不论怎么放大都是清晰的
储存的是点线的坐标,在经过重新计算之后,会清晰的呈现出来
光的计算科学
难绷,论坛上给的虚拟机是ubuntu18 并且是virtual box的版本.
想用vmware虚拟机跑.将vdi格式转化为vmdk,并创建对应的虚拟机.
问题在于VMware tools安装失败.每次安装完成之后,再reboot,就会变成没有VMware tools…搞不懂.
还是在windows上配置环境算了…
看了下windows配置eigen和opencv有点麻烦,选择换成虚拟机ubuntu20.04LTS自己配置
更新breaking news!
官方给的虚拟机,转换为vmware之后,vmwaretools安装成功了…
直接用就行了.配置环境结束.
遇上vscode编译时候报错
1 | /usr/bin/gcc -fdiagnostics-color=always -g /home/l4rk/games101/pa0.c -o /home/l4rk/games101/pa0 /usr/bin/ld: /tmp/ccjPHxdQ.o: in function `main': /home/l4rk/games101/pa0.c:6: undefined reference to `sin' collect2: error: ld returned 1 exit status |