- 博客(53)
- 收藏
- 关注
原创 【OpenGL 】纹理显示和预期不符合
这通常是返回的通道数和预期通道数不一样,即第四个参数和第五个参数不同所导致。stbi_load 函数最后一个参数设置错误,可能显示这种。
2023-10-14 23:39:03
268
原创 【OpenGL】二、三角形
【红宝书】绑定对象的过程就像设置铁路的道岔开关,每一个缓冲类型(比如GL_ARRAY_BUFFER)中的各个缓冲对象(比如生成了多个缓冲对象,ID为:123,322,111)就像不同的轨道一样,我们将开关设置为其中一个的状态(比如绑定123为GL_ARRAY_BUFFER),那么之后的列车(针对GL_ARRAY_BUFFER的改动)都会驶入这条轨道(123缓冲对象)。由于OpenGL是一个状态机工作,glGenBuffers分配了唯一标识符,它可以代表缓冲区,着色器,纹理等等。执行),但最终的传入要在。
2023-09-26 23:27:17
114
原创 【Unity3D】【行为模式】【模板方法】
定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。简而言之:父类来定义框架,让子类来具体实现。抽象父类:定义框架定义抽象原语操作,具体子类定义这些操作来实现算法的步骤实现定义算法框架的模板方法。模板方法调用基本操作以及在AbstractClass中定义的操作或其他对象的操作。-当需要确定一系列不可被更改顺序的操作,但其中步骤可以被替换时,选择模板模式。
2023-08-02 21:45:12
237
原创 【Unity3D】【行为模式】【责任链模式】
摘录使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。提示:以下是本篇文章正文内容,下面案例可供参考。
2023-08-01 23:34:24
139
原创 【Shader Garph】Unity Shader Garph案例学习总结(更新中)
收集和学习的ShaderGarph的案例集合,其中包含了实现方法和重点结点的分析。
2023-06-26 23:11:39
184
原创 【Leetcode 524】【双指针】
判断方法也很简单,字典item里index遇到相同就往后移动,若遍历完index到了item结尾,即为所得,此时只需要判断符合条件的返回值即可.其实还是双指针问题的变种,遍历字典,依次判断 s里是否包含字典item即可。
2023-04-27 23:52:47
92
原创 【Leetcode 142】【快慢指针】【Floyd 判圈法】
给定两个指针,分别命名为slow 和fast,起始位置在链表的开头。每次fast 前进两步,slow 前进一步。如果fast可以走到尽头,那么说明没有环路;如果fast 可以无限走下去,那么说明一定有环路,且一定存在一个时刻slow 和fast 相遇。当slow 和fast 第一次相遇时,我们将fast 重新移动到链表开头,并让slow 和fast 每次都前进一步。当slow 和fast 第二次相遇时,相遇的节点即为环路的开始点。,有一个通用的解法——快慢指针(检测链表中是否有环存在。
2023-04-24 23:32:31
279
原创 【Unity主程手记(摘录)】第一章(五)(六)排序算法和查找算法
四叉树:二维平面上的有效碰撞检测搜索范围,地形的有效展示范围,在地图上找某块方块上的人或事,以及包括二维平面的寻路网格构建等
2023-04-24 19:57:37
252
原创 【Unity主程手记(摘录)】第一章(四) - 委托和事件、拆箱和装箱
栈是本着先进后出的数据结构(LIFO)原则的存储机制,它是一段连续的内存,所以对栈数据的定位比较快速,而堆则是随机分配的空间, 处理的数据比较多, 无论如何, 至少要两次定位。堆内存的创建和删除节点的时间复杂度是O(logn)。栈创建和删除的时间复杂度则是O(1),栈速度更快。
2023-04-23 21:53:28
617
1
原创 【Unity主程手记(摘录)】第一章(二) - Dictory 底层源码剖析
从效率上看,同List一样最好在 实例化对象时,即 new 时尽量确定大致数量会更加高效,另外用数值方式做Key比用类实例方式作为Key值更加高效率。从内存操作上看,大小以3->7->17->37->….的速度,每次增加2倍多的顺序进行,删除时,并不缩减内存。如果想在多线程中,共享 Dictionary 则需要进行我们自己进行lock操作。
2023-04-22 15:02:54
878
原创 【Unity主程手记(摘录)】第一章(一) - List 底层源码剖析
List 的效率并不高,只是通用性强而已,大部分的算法都使用的是线性复杂度的算法,这种线性算法当遇到规模比较大的计算量级时就会导致CPU的大量损耗。List的内存分配方式也不合理,当其中元素不断增加会多次重新分配数组,抛弃原有数组。调用GC时候会造成压力。最好在List初始化的时候就声明Capacity。List不是线程安全的,并发情况下无法检查_size++的执行顺序,在多线程情况下使用List时应该注意安全,因此当我们在多线程间使用 List 时加上安全机制。List并不高效,但是足够通用。
2023-04-21 23:32:12
639
原创 【计算机图形学之旅】【Game101】二:Transformation Cont 和 作业0
通过变换矩阵可以得到类似正交投影的立方体,然后重复正交投影的变换即可得到最终的变换矩阵。通过两个变换矩阵将立方体投影到以原点为中心的1。
2023-03-18 00:47:16
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人