- 博客(9)
- 收藏
- 关注
原创 【Unity】初级模型渲染原理: (高性能版)纯代码创建一个三角面并给其贴图测试
可以直接使用Unity提供的方法来开辟这块空间. 因为开辟空间时, 底层需要做内存跟踪和安全检查, 有性能开销, 所以Unity只提供创建MeshData数组(当然还是NativeArray数组)的API, 当我们只需要创建一个MeshData, 依然需要先创建MeshData数组, 再获取MeshData的内存引用。而position, UV 我们将自己设置, 都放在steam 0 中, 所以现在就需要确保这里设置的格式, 与我们自拟的结构体MyVertexData中的格式吻合.
2025-03-20 12:21:38
761
原创 (C#零基础)任意类型数值转机器数(0和1), 了解大小端概念
比如说ushort 类型的3, 在小端环境中的2个Byte分别是: 第一个Byte=00000011;因为UInt16是16位,Byte是8位, 所以GetBytes方法返回值是Length为2的Byte数组。一般来说C#运行环境是小端, 小端是指当一个数值超过1Byte时, 它的高位Byte储存在内存地址高位。用GetBytes方法得到2个成员的Byte数组, 索引0的Byte=3;索引1的Byte=0;2. 首先把任意类型数值转化为Byte[]: (以ushort[即UInt16]类型为例)
2023-12-20 13:22:05
522
1
原创 C#闭包简单解释
可看到, 编译器生成了一个内部类, 把临时变量转换为成员变量, 这这就是编译器生成的"闭包". 可以猜测Func委托内部维持了对counterClosure这个变量的引用, 所以只要委托存在,这个变量就不会被回收.这段的输出结果是0/1/2. 也就是说i的值不断增加,但是我们知道, GetDelegate这个方法下的i这个值, 它是一个临时变量, 方法执行结束就应该销毁了,怎么会能增加到3?把以上代码输如SharpLab, 看看编译器拿到的版本,至于闭包陷阱, 是因为闭包原理的反常识现象, 下次再说~
2023-11-26 18:20:06
345
1
原创 并行索引器设计模式
一句话: 需要拓展一个带索引器的类的功能, 又不想更改这个类. 即可使用另一个带索引器类, 索引与之一一对应.Unity贴图系统使用了相似的思想, 三角面和贴图数组使用相同的索引.
2023-10-30 13:42:22
80
1
原创 【Unity】初级模型渲染原理: 纯代码创建一个三角面并给其贴图测试
2. 渲染遵循左手法则, 也就是顺时针提供三角面的点时, 引擎会把面向你绘制为正面. 所以上面我提供的三角面索引是0,2,1 而不能是0,1,2 (如下图, 绿色是其索引). 当然, 只要顺序是顺时针即可, 具体顺序可以随意. 比如提供2,1,0 或者 1,0,2 效果和0,2,1是一样的.[UV数组]:[顶点位置数组]成员, 所对应的(是的,索引一一对应),在贴图上的位置(比例) 比如{(0,0),(1,0),(0.5,1)}"真.原图"为: 正方形,方便后面切割, 像素不重要,因为后面是按比例切割.
2023-09-16 14:08:57
301
1
原创 【C#】yield语法糖作用和原理(迭代器IEnumerable和IEnumerator)
代码发在网盘,可以自己测一下. 里面还有IEnumerable版本(实现一个获取IEnumerator的方法就可以)和Foreach调用(自动移MoveNext+拿Current,直到没有下一个)版本。把yield return 上下文的实现放入 MoveNext()中去, MoveNext返回false代表迭代完成,没有下一个元素了.可以看到yield return 的值去了Current, 而其前后的代码分别去了 MoveNext()的上下2块代码中去.百度GPT, 免费,理解能力低于GPT4。
2023-09-09 18:19:54
243
1
原创 【Unity】协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理
所以我们必须有一个类, 用来记录WaitForSeconds这种YieldInstruction被创建时的环境参数, 也就是[自己被Yeild出来的时间], 根据小道消息, 这是MonoBehaviour类的内部类, 所以写法如下. 并且给MyWaitForSeconds写一个实现类当他的儿子。对于可以迭代的,正常执行MoveNext 并获取新的Current用来更新其[协程信息封装类obj](更新方法和开协程时一样), 当然,没有下一个可迭代则结束当前协程.
2023-09-09 16:49:54
541
3
Unity协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理
2023-09-09
Unity协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理
2023-09-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人