- 博客(214)
- 收藏
- 关注
原创 【c#】IEnumerator 和 yield
迭代器是一个可以逐个访问集合中元素的方法或属性。在C#中,实现迭代器的常见方法是通过实现IEnumerable和IEnumerator接口。然而,这种方法可能会涉及大量的样板代码来维护状态和位置。
2024-05-17 10:21:39 242
原创 【webgl】自定义attribute位置gl.bindAttribLocation
开始学习webgl一些简单demo的时候,看到是使用可以获取当前着色器程序某个attribute变量的如果使用就可以自定义指定位置,根据allAttrInfo中attribute顺序指定对应索引位置,方便后续调用。
2024-02-04 09:47:31 453
原创 【c#】线程Monitor.Wait和Monitor.Pulse使用
getConnection的时候,如果队列中connection个数小于50,且暂时无可用的connection(个数为0或者peek看下头部需要先出那个元素还处于不可用状态),就新建连接并建立连接,开始一直新建到50个connection,就是_currentPoolSize =50。如果队列中connection个数大于等于50,且暂时无可用的connection(个数为0或者peek看下头部需要先出那个元素还处于不可用状态),就等着。以一个简易版的数据库连接池的实现来说明一下。
2023-10-08 16:56:34 345
原创 【Unity Shader】自定义变体使用
GLSLPROGRAM后面加#pragma multi_compile语句然后顶点和片元着色器中脚本中开启和关闭HAS_UNIFORM_u_color。
2023-09-08 10:33:58 417
原创 【Unity 渲染】Projector(纹理映射)
之前看webgl的纹理映射,最近刚好学习unity中发现有类似概念Projector,记录一下,两篇博客对比学习。
2023-06-14 16:46:52 408
原创 【WebGL】ShadowMap实现阴影原理
假如场景中有一个平面和三角形,实现阴影的步骤和原理如下:1.以灯光为相机视角渲染平面和三角形,记录片元的深度信息到gl_FragColor2.以相机为视角进行渲染三角形和平面,着色器如下这里就是当前模型同一个点取得灯光视角空间的深度和在相机视角下的深度,进行对比(当前片元在投影贴图中所对应的片元)之所以要先取灯光视角空间的所有模型的深度信息(上一步的帧缓存),是当前渲染的时候只能取得自己得深度。
2023-06-13 14:43:45 183
原创 【mapbox 样式】light
viewport”:光照位置不变,所以building旋转的时候,其表面明暗程度会变化“map”:光照随地图位置变化,所以buliding旋转的时候,其表面明显程度不会变化了。
2023-05-31 15:25:25 359
原创 【渲染管线】关于模板测试
模板测试(stencil test)是一种测试技术,它用于比较模板缓冲区中的值和参考值(reference value),并根据比较结果决定是否绘制像素。模板测试是一种测试技术,它用于比较模板缓冲区中的值和参考值(reference value),并根据比较结果决定是否绘制像素。在执行绘制命令时,WebGL会将模板缓冲区中的值与参考值进行比较,如果相等,则通过测试。最后,我们将模板缓冲区的操作设置为保持当前值不变,当模板测试通过并深度测试失败时保持当前值不变,当模板测试通过并深度测试也通过时将当前值加1。
2023-03-24 18:14:29 703
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人