tna
发现2dx的director里面的matrixStack基本是没用的...我的天,什么鬼...tna
我在重写自己引擎的变换矩阵pine
然后打算参考一下cocos,然后发现日了狗
变换矩阵pipeline
狗灰
?ant 胸,D3D9的话固定管线我知道的可以做硬件顶点、矩阵运算(只有坐标变换矩阵,没颜色变换矩阵),还有就是顶点着色、Alpha混合、纹理4种寻找模式、纹理缩放抗锯齿(XP6种,Win7多一种)。
OpenGL有哪些?
狗争无世与
ant去看一下vulkan的画三角形代码让你想死更复杂tna
目前在用opengl层面暂时觉得够了狗灰
?与世无争狗 Vulkan刚出来,不兼容老机器是硬伤。
tna
我的草狗灰
?ant 在Direct3D、OpenGL、Metal3D之后出来的一个新的图形库。
狗争无世与
opengl不会废的,老教授们教学还是用的opengl的
tna
?灰狗 灰狗兄弄过vulkan了?
?与世无争狗 估计还能战个10年
狗争无世与
vulkan就是为了淘汰opengl用的
gl历史包袱太重了
狗争无世与
gles可能成为他的子集
gles没问题啊,再战好多年,起码
tna
es不就是gl的子集吗?
怎么变成vulkan的子集啊?
狗争无世与
对啊,成为vulkan子集也不是不可能啊
以后gl老函数淘汰
狗争无世与
以后就支持gles vlukan这些
也有坑你啊
可能啊
vulkan和dx12属于新一代图形接口啊,薄驱动了,基本能直接访问硬件了
tna
那是必然啊
?与世无争狗 渲染管线一样不?
如果一样,那还好,只是重新弄弄渲染api
vertex和fragment的也不用重新弄
狗争无世与
新一代图形接口要流行,还要时间啊
老机器淘汰挺慢的
tna
要在流行前弄回才能在流行时赚钱![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/0E96DEA9-28ED-4dc1-873F-F66EB2B8D762.jpg)
狗争无世与
想多了,搞这种的只有少部分公司
图形这东西,也就大公司哪种养一些学者写论文研究的
狗灰
![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/AF7A6BED-AD7F-4c7c-90EB-F471C7DC452C.png)
?ant OpenGL才这两个啊?现在HLSL都这么多着色器了:
![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/DA67514D-C680-4bf7-BBC2-E8EAB77785F3.png)
tna
?灰狗 草,我就知道vertex geometry 和fragment?灰狗 还有人用fragment来做物理模拟,这东西简直狗灰
然而这些,我并不会用,只晓得HLSL比GLSL多一个离线编译。
tna
其他那些压根没见过
unity还有个surfaceshader
这都不知道是啥东西
狗灰
?ant SurfaceShader是表面着色器,字面意思看起来根据就跟像素着色器好像是一回事吧!
tna
?灰狗 不是的,unity也有vertex和fragment,surface跟多是一些开关
我现在搞不懂,为什么2dx不直接用gl自带的matrixstack效率问题? thgif
它把每个节点自己的矩阵存到自己的对象里面
这有什么不对的吗?
tna
唉,年后看看能不能跳过20多的动作thgif
可扩展性很强啊,
运算还好
矩阵计算,其实问题不大
他也做了一些优惠
优化
狗灰
?fight 你个人看一下它矩阵运算的源码就晓得了
tna
游戏做出来都不火的,你和我说效率?!狗灰
![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/3C41208D-1574-4359-9818-A91D20FB8BFC.png)
这真有,我们公司捕鱼在子龙山人:)的指导下开启矩阵运算的SSE优化后,安卓帧率瞬间提高很多。tna
?狗争无世与
你们捕鱼是js写的么狗争无世与
我们捕鱼也有瓶颈,不知道怎么优化了,lua哪里运算量贼大了,我都没用cocos的函数转换了,都是手写了
安卓低端机高峰还是掉帧
tna
我们就弄了狗争无世与
在update里面和c++交互,通讯贼费时
狗争无世与
还要还用的jit加速,不然低端机高峰就卡的不行了
thgif
1
除了这个还有别的优化空间吗
矩阵计算的
?ant
?灰狗
狗灰
?fight 多得是,你上学时数学老师总教过你公式展开吧!
这就是优化的最基本方法
tna
?与世无争狗 这个感觉游戏逻辑还有优化的地方
tna
齐次坐标的引入还是有必要的
只是单纯记录矩阵,可能只需要3*3
thgif
我看下![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/41FFAF5B-947E-43de-8674-AD4974858E60.gif)
tna
但是一旦涉及到变换,不用齐次坐标,基本无法运行吧
狗灰
就像矩阵*一个平移矩阵的进行公式展开后,就是3个加法。还有*缩放矩阵公式展开后就是12个乘法。
不对4*4是16个乘法
狗争无世与
ant去看一下它的三角形代码哈哈哈哈狗灰
?ant 2D一般用3*2就够了,除非要进行透视变换(梯形化变换)才用3*3的。
狗争无世与
给不了了,我翻不了墙了
最近不知道是墙厉害了,还是我网哟问题
访问国外网站贼慢
tna
?灰狗 也不能只管2d啊tna
?灰狗 我也不清楚3*2是咋回事
?灰狗 灰狗兄,解释一下
狗灰
![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/0FCBD59F-7214-423f-B272-A0179A89DA94.png)
?ant SSE是这个东西:
![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/837022D4-2A7A-44de-9435-0EDF4C4B9EAE.png)
狗争无世与
完全看不懂灰狗再说神马了
https://vulkan-tutorial.com/Drawing_a_triangle/Setup?ant
tna
?灰狗 灰狗兄过分了
臣妾看不懂?与世无争狗 不知道怎么看 狗灰
?逆光 2D的话2*2只能进行线性变换(只有平行四边形化变形功能),3*2进行仿射变换(多一个平移变换功能),3*3进行透视变换(再多一个梯形化变形功能)。
光逆
soga![](//uploads.xin1234.com/Admin/MMFls/upload/405c5591e4f229c43a8902ac8a8e32a1/2016-11/332F44EA-3448-41a1-B7BE-21C13AF41588.jpg)
狗灰
同理3D多一个Z坐标变换,所以需要3*3线性变换、4*3仿射变换、4*4透视变换。
还有颜色变换矩阵,因为RGBA构造一个4D数据,而颜色变换一般不需要透视变换,所以用5*4的矩阵来变换。