- 博客(17)
- 收藏
- 关注
原创 UE5覆层材质失效
笔者学习UE5的时候使用了覆层材质实现物品的高光显示,但是部分网格体在设置了覆层材质材质后却并没有渲染材质如图,在触发事件后,就设置了静态网格体组件的覆层材质,在print流程后也确认了静态网格体已经设置好了覆层材质。
2024-10-10 16:34:21 299
原创 记录字符串临时变量拷贝问题
str变量是我在 if 内定义的,所以 if 结束后这个临时变量就会销毁,而 string 的 c_str() 方法是浅拷贝,导致 ch 获取了 str 的地址后因为 str 的销毁而产生bug。这段代码最后 ch 的结果是错误的,应该是一个比较常见的临时变量作用域的问题。在工作中碰见了一个关于字符串临时变量的问题,特地来记录一下。修改的方法也比较简单,将临时变量的定义移出 if 内就行。
2024-08-07 10:33:16 225
原创 URP学习笔记——解读Lighting.hlsl文件
Lighting.hlsl是URP管线中一个重要的组成部分,它包含了URP渲染过程中光照相关的计算。
2024-07-25 16:07:32 1583
原创 Unity实现PBR造轮子实践
本篇博文秉持着学习和记录的目的而写,其中包含的内容基本为Unity源码的造轮子工程,以及向其他大佬学习的内容本篇文章将主要分成两个部分,一个是直接光(BRDF)的实现,另一个则是IBL光照的实现。
2023-11-28 18:22:43 308 3
原创 SRP中环境光不生效问题
在进行 PBR 相关的学习时,博主写的 shader 环境光在 SRP 中一直获取不到,但是切换到 URP 的管线下就可以正常显示,查找了很多资料最后成功解决了该问题,特此记录一下
2023-11-28 14:27:07 110 1
原创 deque底层实现\栈与队列的实现——STL源码剖析阅读笔记
(头部则是会判断没有备用空间),如果有两个以上备用空间,那么我们可以直接讲元素放入缓冲区,但是若是没有,则会触发push_back_aux()函数。这个函数首先会判断。
2023-04-13 09:48:08 90
原创 OpenGL学习记录Day3(GLSL初识与Shader类的封装)
uniform是全局变量,在渲染过程的任何阶段都可以被访问,如下面代码所示,我们定义了一个uniform变量,并将它作为片元着色器颜色渲染的输出值。在使用时,我们可以通过类似vec.x、vec.y这种操作来获取它的分量,并且允许向量作为参数传给不同的向量构造函数。如上所示,我们可以随意的将一个向量的分量赋予到另一个向量的分量上,并且可以进行运算操作。同时,我们需要更新顶点的格式,保证我们在运行shader时获取的数据是对的。而在顶点着色器中,我们是以一种特殊的形式接收数据的,所以需要加入。
2023-04-11 22:12:15 210
原创 OpenGL学习记录Day2(实现简易的着色器并渲染到屏幕)
第二天的学习主要是对渲染管线的流程有了一个大概的了解。为了方便调用,这里都用了函数来封装着色器的初始化。
2023-04-11 10:43:38 119
原创 Vector底层扩容机制——STL源码剖析阅读笔记
我们的容量不能够满足插入新值后的元素个数,我们就需要进行扩容了,那么应该扩充多少呢?知道了要扩容的容量,那么接下来的操作就与push_back()函数的扩容机制一样了,先配置一个新的容器,然后将原容器中插入点前面的元素复制到新容器,将插入点后插入n个需要插入的值,再将插入点后的元素复制到新容器尾部,最后释放旧容器的空间,我们就做好了insert()函数的扩容操作。如果没有备用空间,则会以。,也就是说,如果我们扩容二倍可以容纳这些值,那么我们就扩容二倍,如果不能,我们就扩容到刚好可以容纳这些值的容量。
2023-04-11 07:54:36 163
原创 OpenGL学习记录Day1(vs2022搭建OpenGL环境并测试运行)
这里使用了CMake来生成glfw3.lib文件,并引用了源文件中的include文件夹,然而实际上GLFW的官网有编译好的文件(刚开始本人不知道怎么用,搞了半天还是选择了自己编译)到这里环境的配置就好了,我们可以在main.cpp下引入相应的头文件查看是否成功引入。 这里按照文档的代码测试了一下能否正常运行,最后确实生成了一个深色的引擎窗口。 这里选择参考了LearnOpenGL文档里的做法,Language选择为。 总结一下,我们在项目中实际运用到的文件为。,下载生成的glad.zip文件。
2023-04-09 22:42:08 265 1
原创 leetcode 56. 合并区间
*题意:**以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。**思路:**考虑开一个数组cnt,下标为左端点的值+1,下标为右端点的值-1,从0开始求和,那么满足条件的区间内的sum一定大于0,也就是说最后得到的区间左端点一定是从0到1的点,右端点一定是从1到0的点。
2023-03-11 11:44:22 54
原创 leetcode 42. 接雨水
可以发现填满雨水后一定是一个先升序后降序的序列,也就是说对答案产生影响的只有从左边开始的升序序列和从右边开始的升序序列。考虑dp[i]表示从左边/右边开始的最大值,每次改变最大值的时候,根据左边/右边的上一个最大值计算出接满雨水后的面积加入到答案res中,并更新l/r指针,最后对整个序列求和,那么最终答案res = res - sum + (r - l)* height[l]:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
2023-03-11 10:49:17 195
原创 leetcode 19. 删除链表的倒数第 N 个结点
首先算出链表的长度len,我们要删除链表的倒数第n个结点也就是删除第len-n+1个结点,所以我们遍历到第len-n个结点时将指针指向第len-n+2个结点即可。:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。应注意要在链表头部加一个空结点来保证删除第1个点不会出现问题。
2023-03-08 16:07:39 357 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人