随笔分类 - D3D
摘要:https://docs.unity3d.com/Manual/GPUInstancing.html 归纳总结: 一,快速使用U3D 的GPU 实例化功能 1,选择一个shader,勾选 enable gpu instancing,这个shader将用于你的将要使用gpu instancing的物体
阅读全文
摘要:/*** * glm中矩阵是行优先存储的,这不同于opengl默认的以列优先存储的方式??,以下面矩阵mat为例 * 它是用四个行向量来模拟存储四个行:vec4 value[4],其中 * value[0] = (1,0,0,0) = (m[0][0],m[0][1],m[0][2],m[0][3]) * value[1] = (0,1,0,0) = (m[1][0],m[1][1],m[1][2
阅读全文
摘要:有时候,场景中添加了某些细节,如草丛等,顿感场景变得有趣有意境了。 或是细节的刻画,比如某处的树根细化了,很有动画感,走到这里就感觉很有意境了。 由此又想到了WAR3的画面,它的剧情战役中很多精美的场景:泉水,瀑布,水草,河流,树木等。 突然想到:如果农药的双方基地都做个性化修改,像DOTA一样,每
阅读全文
摘要:https://en.wikipedia.org/wiki/Unified_shader_model In the field of 3D computer graphics, the Unified Shader Model (known in Direct3D 10 as "Shader Mod
阅读全文
摘要:当视线垂直于镜面时,用模板实现镜子非常容易: 1,绘制镜子 : stencil test on, ref 2, cmp always, pass replace,这样镜子渲染完后,镜子 区域的像素的模板值全部写为了2。 2,绘制镜子前的物体:stencil test on, ref 2, cmp e
阅读全文
摘要:如上图可见,剪裁位于VS之后,setup之前。其中setup是图元装配,就是利用三角形索引信息将顶点组织起来,也就是让显卡知道顶点如何组成三角形。 这里的剪裁应该是视锥的前后面裁剪,是硬件进行的,因为这个剪裁是在三角形组装之前,没有三角形的信息,只有零散的顶点,这时候不可能进行精确到三角面的裁剪,应
阅读全文
摘要:void Start () { //矩阵函数原型:Matrix4x4(Vector4 colum0, Vector4 colum1, Vector4 colum2, Vector4 colum3),这说明U3D使用列矩阵,同opengl //因此矩阵是左乘的,DX是行矩阵,矩阵是右乘的。 //在DX中WVP矩阵组合为 W*V*P, 而GL中...
阅读全文
摘要:1,shader model 3.0 只有256个常量寄存器,32个临时寄存器。对应dx9, opengl2.0, opengles2.0 2,shader model 4.0 有65536个寄存器,4096个临时寄存器。对应dx10以上,opengl3.0以上,opengles3.0以上 3,dx
阅读全文
摘要:这两个问题很容易弄混淆。要确定旋转正向必须先确定是左手坐标系还是右手坐标系。 1,判定坐标系: 方式一:使用左手,大拇指指向Z轴正向,其余四指由X向Y握起。如果可以达成,则为左手坐标系,否则为右手坐标系。 方式二:伸出左手,食指朝上,大拇指向右,中指向前,如果X,Y,Z三轴分别与大拇指,食指,中指同
阅读全文
摘要:1,3D Game Engine Programming 2, 3, 4, 5,
阅读全文
摘要:事件系统有三个要素:发送者,接收者, 转发者。 发送者有两种,一是相机,二是画布。发送者是事件的管理者,发起者,它们使用射线发射器来检测点击事件: 相机的physics Raycaster。 画面的Canvas Raycaster。 发送者是首要因素,如果不给相机添加physics Raycaste
阅读全文
摘要:,如下图一,把灰色箭头想象成是一架飞机,红,绿蓝三个圈看作是三个外围控制器,外圈带动所有里圈运动,里圈的运动不影响外圈。 1,首先,绕Y轴旋转(旋转绿圈),来确定前进的方向。这时红圈与蓝圈都跟着旋转。 2,然后,绕x轴旋转(旋转红圈),让飞机仰视或俯视。这时蓝圈跟着一起旋转,绿圈不动。 3,最后,绕
阅读全文
摘要:这是一篇晦涩难懂的片面的研究 一,简单的继承层次 在这种情形下调用Test(oc)有如下规律:<通过注释掉其它函数进行测试> 由此我们得知,Test(oc)调用时,编译器会由oc的继承层次由子到父的优先级去匹配重载函数的形参。这也符合正常逻辑。 二,类中有运算符重载的继承 此情形下boolTest重
阅读全文
摘要:编译时出现如下错误: 可以看到34行和36行都出现了编译错误,而35行则正确编译。原因分析: C#中,reference类型变量存储在堆上,value类型存储在栈上。pos, posx, position都是值类型,为什么会有不同的编译结果呢。区别在于 pos, position是属性,posx是字
阅读全文