自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 gams103作业1含提高部分

这里是为了将质心设定为0,0,0。因为mesh.vertices是相对于局部坐标系的每个顶点的位置,但是不是相对于质心。这里碰撞检测根据读入给定的表面点和表面的法向量求点积判断是否小于0,如果是则证明两个的方向相反,发生碰撞。当同时满足以上两个条件的时候,则证明该点发生碰撞,此时需要记录碰撞的位置,按照平均的方式求碰撞点。根据算法流程,求出之前的速度,然后进行速度的分解,对不同方向的速度进行处理得到新的速度。但是这个地方会不断的颤抖,并且会沿着切平面方向不断的移动。个人觉得刚体用这种方式不太好。

2024-07-08 09:50:01 224

原创 games101作业7光线追踪 含多线程和微表面提高

对于光线追踪进行综合运用。

2024-06-14 14:47:38 955

原创 games101作业6BVH SAH

设光线击中它们的概率分别为 𝑝(𝐴) 和 𝑝(𝐵) ,需要注意包围盒 𝐴 和 𝐵 之间存在重叠,且它们并不一定会填满其父节点的包围体,因此 𝑝(𝐴) 和 𝑝(𝐵) 的和不一定为1,且它们的和越大说明 𝐴 和 𝐵 的重叠程度越大。在实现的时候,相比于计算可能划分的代价然后寻找代价最小的划分,一种更好的办法是将节点 𝐶 所包围的空间沿着跨度最长的那个坐标轴的方向将空间均等的划分为若干个桶(Buckets),划分只会出现在桶与桶之间的位置上。这里是当x轴的长度大于y,z的时候,将所有的物体按照x轴来排序。

2024-05-23 23:26:33 964 1

原创 games101作业5射线求交

因为我们知道从摄影机原点到胶片平面的距离(1 个单位)和胶片平面的高度(2 个单位,因为它从 y=1 到 y=-1),所以我们可以使用一些简单的三角法来求出直角三角形 ABC 的角度,即垂直角的一半。这一操作会改变场景的大小,当视野缩小的时候相当于场景放大(BC跨度小了,相当于用更小的单位长度表示相同的物体),当视野放大的时候相当于场景缩小。相当于一个缩放系数。例如,如果一条射线的原点为(0,0,0),方向为(0,0,-1),这些数字代表世界空间坐标系中的坐标,那么这条射线将与圆盘相交于(0,0,-5)。

2024-05-20 16:56:25 566

原创 games101作业4含反走样提高

我们当前的点不是整数点,但是在opencv绘画的时候,会把它强制转为整数点,所以我们可以先转成整数点,然后判断与这个整数点相邻的像素点,然后根据像素中心和这个实际的红点之间的距离判断着色。在这个图中意思就是,比如说这个以曲线上的一个像素为右下角的四个像素格子,另外三个都是黑色,只有曲线上的像素格子为绿色,如果曲线上的点都是这样,会导致什么结果。这里作者的意思是首先四舍五入的像素点的位置着色为最亮的颜色,对于相邻的像素,判断到其距离与到着色为最亮的像素的颜色的距离的比值,根据比值判断着色。

2024-05-12 23:43:01 521 3

原创 games101作业3,实现bump,displacement

首先我想解释一段代码,我感觉我自己这种说法最能说服我zp*=Z;首先这里的zp求的是透视变化前的深度,透视变化后深度也不应该会有变化,透视变化的时候,z的内容为z*z,w的内容为z。然后z的值会被修正为其原本的深度(ps:这里我有点乱,但是主要是需要结合透视修正公式来看)所以其实这里的v[i].z()就是等于v[i].w()。其中Z的值就是透视投影修正值。

2024-05-11 16:23:19 811 1

原创 Games101作业2,SSAA+MASS

参考作业2主要是片段是否在屏幕上显示和处理,也就是画一个图,图是由像素组成的,需要判断哪些像素需要颜色,这样才能画出来。首先我们需要判断哪些像素在三角形内部判断像素是否在三角形内部,需要使用叉乘的方式,判断的方向是否一致,比如统一指向屏幕向外,还是指向屏幕向里然后我们需要逐像素的去判断是否该像素点需要着色,同时需要深度判断,如果该三角形在该像素点上的表现更加靠前,则我们更像该像素点的颜色。main中,只是加上了生成projection矩阵的逻辑但是这样会有一个问题,此时的三角形是倒着的。

2024-05-07 22:26:42 867 1

原创 opengl学习-多光源(随心记录)(包括手电筒图片)

我们在前面的教程中已经学习了许多关于OpenGL中光照的知识,其中包括冯氏着色(Phong Shading)、材质(Material)、光照贴图(Lighting Map)以及不同种类的投光物(Light Caster)。在这一节中,我们将结合之前学过的所有知识,创建一个包含六个光源的场景。我们将模拟一个类似太阳的定向光(Directional Light)光源,四个分散在场景中的点光源(Point Light),以及一个手电筒(Flashlight)。

2024-04-30 15:00:23 599

原创 drawio制作精美流程图后word导出无损流程图

最近在用drawio写毕业设计,发现一个问题,drawio导出的svg矢量图,插入word后,再导出pdf会出现矢量图失真。

2024-04-29 10:32:00 335

原创 opengl学习-投光物(随心记录)

就是人们更加习惯定义光照方向为,从光源指向物体。但是我们这里的光照方向为物体指向光源。

2024-04-26 16:34:35 562 1

原创 opengl学习-光照贴图(随心记录)

我们将整个物体的材质定义为一个整体,但现实世界中的物体通常并不只包含有一种材质,而是由多种材质所组成。想想一辆汽车:它的外壳非常有光泽,车窗会部分反射周围的环境,轮胎不会那么有光泽,所以它没有镜面高光,轮毂非常闪亮(如果你洗车了的话)。汽车同样会有漫反射和环境光颜色,它们在整个物体上也不会是一样的,汽车有着许多种不同的环境光/漫反射颜色。总之,这样的物体在不同的部件上都有不同的材质属性。我们这里通过设置光照贴图来设置漫反射纹理系数和环境光照的削弱系数。

2024-04-24 15:59:02 684

原创 ruamel.yaml(很好的保存yml的格式)

设置YAML文件中每行的最大宽度。在这里设置为500,是为了防止行过长时的自动换行。:再次打开文件,这次是以写入模式,准备将修改后的数据写回文件。发现一个很好的保存Yaml格式的读入更改和写出的库。:读取YAML文件内容,并将其解析成Python的数据结构。对象的实例,这个对象将被用来读取和写入YAML文件。:将修改后的数据结构转换回YAML格式并写入文件。语句打开文件,这样可以确保文件在使用后正确关闭。等类似语句:更新YAML数据结构中的对应键值对。:设置YAML文件的缩进格式,其中。

2024-04-09 23:38:54 421

原创 opengl学习的注意事项(记录一下)

在OpenGL的使用中,函数指针是必需的,因为OpenGL是一个平台无关的标准,具体的实现是依赖于系统的。当你有多个VBO并且需要指定OpenGL从哪个VBO读取顶点属性数据时,关键在于你绑定VBO到GL_ARRAY_BUFFER目标的时机以及你调用。在OpenGL中,你可以创建多个VBO,每个VBO可以存储一种类型的顶点数据。是你想绑定的VBO的ID。在渲染过程中,当GPU需要读取顶点数据时,它会根据顶点属性指定的规则从关联的VBO中获取数据。通过这种方式,你可以为不同的顶点属性绑定不同的VBO。

2024-04-03 14:59:16 967 1

原创 Qt学习(油管教程)

分析这个项目: QMessage 错误警告 在主窗口的cpp文件中

2024-03-24 17:06:38 619 1

原创 C++ (The Cherno CppSeries上)(只记录自己没学过的,或者不清楚的)(持续更新)

如果我们不调用Multiply函数,重新build仍然会报错如下图。因为虽然在Math.cpp我们不用Multiply函数,但是从技术上讲,我们有可能在另一个文件中用到这个函数,所以链接器需要链接到它。return 0;如果我们告诉编译器Multiply函数只会在这个文件中使用,就可以去掉链接的必要性。我们可以在Multiply函数前写个“static”静态这个词,意味这Multiply函数只被声明在这个翻译单元(Math.cpp)中,再次build会发现没有任何链接错误。

2024-03-07 08:52:40 1077 1

原创 Pyqt学习

参考。

2024-02-04 17:06:27 963 1

原创 记录第一次pyqt的项目制作

根据老板的需求,需要导入图片,然后标记图片,标记的方式,是用贝塞尔曲线的方式,这里做一个记录,其中部分代码还是搬运的,反正实现了大致的功能,可以根据贝塞尔曲线得到采样的等分点,然后后续可以进行相关的操作。后续打算继续学习pyqt和C++,然后希望能够根据C++的qt方式去实现这个功能。首先设计了主窗口,这里窗口的布局大致为。

2024-01-31 15:45:16 208

空空如也

空空如也

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

TA关注的人

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