- 2024-09-26GAMES101(作业7)
作业七题目:实现pathTracing,仅修改castRay(constRayray,intdepth)函数,在其中实现PathTracing算法代码框架://OBJ-loader模型加载库 global:全局变量/函数 vector:Vector3f,Vector2f类floatnorm(){returnstd::sqrt(x*x+y*y+z*z);}/*向量长度
- 2024-09-05GAMES101(0~1作业)
搭建虚拟机环境安装OracleVMVirtualBox虚拟机,安装虚拟硬盘,配置Linux Ubuntu-64bit系统,启动虚拟机,发生冲突错误:将Vmware虚拟设备取消挂起状态,关机确保Hyper-V完全关闭:bcdedit/sethypervisorlaunchtypeoff重启计算机安装增强功能,未找到iso错误:ISO下载地址:Indexof
- 2024-08-17GAMES101——作业5 光线与三角形相交(菲涅尔反射率)
任务 需要修改的函数是: Renderer.cpp中的Render():这里你需要为每个像素生成一条对应的光线,然后调用函数castRay()来得到颜色,最后将颜色存储在帧缓冲区的相应像素中。 Triangle.hpp中的rayTriangleInter
- 2024-05-17Games101-3 triangle
rasterize==drawingontothescreencolor=(red,green,blue)pixelindicesarefrom(0,0)to(width-1,height-1)pixel(x,y)iscenteredat(x+0.5,y+0.5)光栅化判断一个像素的中心点是否需要draw采样的方法--将函数离散化如果中心再三角形内。如何判断
- 2024-05-17Games101-5 shadering
shader对不同物体应用不同的材质定义:shading!=shadowdiffusereflection漫反射光照角度不同,则反射程度也不同于此同时物体离光源越远,反射程度越低高光项镜面反射和视线比较接近的时候使用半程向量计算高光注:半程向量比较好算,反射向量比较难算指数p:cos
- 2024-05-17Games101-6 Geometry
implicit--隐式几何explicit--显示几何implicit点不需要知道位置,但是可以用点之间的关系表示(按照类别归类)E.g.allpointsin3D,where$x2+y2+z^2=1$更通用的表示$f(x,y,z)=0$劣势:不直观优势:可以很简单的判断一个点是否再物体内或者外。explicit
- 2024-05-17Games101-7 raytracing
shadowmapping思想:光源可以看到点,人也可以看到的点。---不在shadow中的点只能处理点光源深度不一致浮点数的精度问题。软/硬阴影raytracing直线传播不会碰撞从光源出发,到人眼光线是可以反射的多次弹射的光纤追踪rayequation对隐式表面对显示
- 2024-05-17Games101-7 raytracing2
辐射度量学basicradiometry---精确的描述光光线的强度Iis10。在屋里层次准确的描述光Newterms:radiantfluxintensityirradianceradianceradiantenergyandflux,radiantintensityRadiantintensity中角度是如何定义的单位立体角Radiantinte
- 2024-05-17Games101-8 material and appearance
漫反射的prdfglossymaterial折射BTDF全反射的情况:$n_i$远大于$n_{t}$也就是说入射密度大。因此水底看空气---会发生全反射情况。fresnelreflectionterm菲涅尔项绝缘体见到那说就是如果如何入射光和法线几乎平行---则大量会被反射。导体
- 2024-05-17Games101 环境搭建
wsl环境配置必要的库sudoaptinstallg++gdbcmakesudoaptinstalllibopencv-devlibeigen3-devopencv头文件{"configurations":[{"name":"Linux","includePath":[&qu
- 2024-05-17Games101-1 Linear Algebra
简单介绍和资源列表https://sites.cs.ucsb.edu/~lingqi/teaching/games101.html线代vector--向量表示$\vec{a}$and$\mathbf{a}$and$\vec{AB}=B-A$指代方向没有起始点向量的长度$\left|\vec{a}\right|$单位向量$\hat{a}=\vec{a}/\left|\vec{a}\r
- 2024-05-17Games101-2 transform
2Dpoint=$(x,y,1)^T$2Dvector=$(x,y,0)^T$---平移不变性transformtranslationAffinetransformner逆变换就是逆矩阵变换的组合矩阵的乘法变换的分解变换到中心旋转变换回原始位置三维3D旋转viewtransformationmodeltransformviewtransf
- 2024-05-17Games101-9 advanced rendering
PhysicallyBasedRendering:FromTheorytoImplementation(pbr-book.org)advancedlighttransport有/无偏的光线传播方法双向路径追踪这里主要的光照为间接光---不是直接光源---实现比较困难。使用马尔科夫链进行推测。优势:对于光线复杂的情况来水,比较好
- 2024-05-17Games101-4 antialiasing and z-buffer
利用中心对三角形进行采样antialiasing反走样samplingartifact--图形学中一切不好的东西空间,时间采样问题---信号的速度快导致采样跟不上如何做:在采样之前进行模糊/滤波,然后进行采样--不能反过来正弦和余弦滤波--好处:参数不同频率不同---每隔多少就重复一次
- 2024-04-17Games101:绕任意轴旋转
Overview对于任意坐标\(S_1=(S_x,S_y,S_z)^T\),绕任意轴线\(\vec{n}=(n_x,n_y,n_z)^T\)旋转\(\alpha\)度,推导变换矩阵\(R(\vec{n},\alpha)\),使得变换后的坐标\(S_2=R(\vec{n},\alpha)\cdotS_1\)本文使用向量运算,推导该变换矩阵。注意:轴线经过坐标系原点基本公式以列向量表
- 2024-04-14games101_Homework7
实现完整的PathTracing算法需要修改这一个函数:•castRay(constRayray,intdepth)inScene.cpp:在其中实现PathTracing算法//ImplementationofPathTracingVector3fScene::castRay(constRay&ray,intdepth)const{//TODOImplementPathTracing
- 2024-04-14games101_Homework6
实现Ray-BoundingVolume求交与BVH查找在本次编程练习中,你需要实现以下函数:•IntersectP(constRay&ray,constVector3f&invDir,conststd::array<int,3="">&dirIsNeg)intheBounds3.hpp:这个函数的作用是判断包围盒BoundingBox与光线是否相交,你需要按照课程介
- 2024-04-12Intel MacBook Pro+macOS 14配置Games101实验环境
参考:求一个games101图形学课程的环境配置教程,最好能够简单易懂,CSDN教程根本看不懂什么意思?-不泊的回答-知乎https://www.zhihu.com/question/459126051/answer/3420947842macos现在怎么装homebrew?-MyloZ的回答-知乎https://www.zhihu.com/question/340411846/answe
- 2024-03-1404 games101-变换(模型、视图、投影)
04变换(模型、视图、投影)MVP变换MVP变换用来描述视图变换的任务,即将虚拟世界中的三维物体映射(变换)到二维坐标中。MVP变换分为三步:●模型变换(modeltranformation):将模型空间转换到世界空间(找个好的地方,把所有人集合在一起,摆个pose)●摄像机变换(viewtranformation):将
- 2024-03-1406 games101-光栅化(深度测试与抗锯齿)
06光栅化(深度测试与抗锯齿)从采样分析走样采样的对象:●在位置上采样——照片●在时间上采样——视频以下副标题均是在时域上分析。采样的瑕疵(Artifacts)Artifacts(Erros/Mistakes/Inaccuracies)●锯齿●摩尔纹●车轮效应●…走样的原因信号频率太快,采样太
- 2024-03-1405 games101-光栅化(三角形的离散化)
05光栅化(三角形的离散化)三角形三角形的性质和优点:●最基础的多边形●其他图形可以拆解为三角形●三角形内一定是平面●内外的定义很明确●定义三个顶点后,三角形内可以插值光栅化(Rasterization)光栅化关键:判断一个像素和三角形的位置关系(像素中心点与三角形的位
- 2024-03-02games101_Homework3
摘要:在Raster部分实现数值插值,然后实现四种不同的像素着色器作业描述:作业1:修改函数rasterize_triangle(constTriangle&t)inrasterizer.cpp:在此处实现与作业2类似的插值算法,实现法向量、颜色、纹理颜色的插值。在rasterize_triangle函数中重复上次的包围盒进行点采样,
- 2024-03-02games101_Homework4
摘要:实现四个点的贝塞尔曲线作业描述:•bezier:该函数实现绘制Bézier曲线的功能。它使用一个控制点序列和一个OpenCV::Mat对象作为输入,没有返回值。它会使t在0到1的范围内进行迭代,并在每次迭代中使t增加一个微小值。对于每个需要计算的t,将调用另一个函数recursive
- 2024-03-02GAMES101 Rasterization 光栅化
向量点乘的作用计算两个方法方向夹角计算两个方向是否接近关于两个方向的计算向量叉乘\[\vec{a}\times\vec{b}=\begin{pmatrix}y_az_b-y_bz_a\\z_ax_b-x_az_b\\x_ay_b-y_ax_b\end{pmatrix}\]\[\veca\times\vecb=A^*b=\begin{pmatrix}0&-z_a&y_a\\z_a&0&-x_a\\-y_a&x
- 2024-02-22games101_Homework1
作业描述:本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵。给定三维下三个点v0(2.0,0.0,−2.0),v1(0.0,2.0,−2.0),v2(−2.0,0.0,−2.0),你需要将这三个点的坐标变换为屏幕坐标,并在屏幕上绘制出对应的线框三角形(在代码框架中,我们已经提供了draw_triangl