PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
GameDesign
Re: [分享] 用缓存mesh和vert shader实作debug draw
楼主:
cjcat2266
(CJ Cat)
2017-10-01 12:50:31
→ Frostx: 不知道Gizmos有没有符合这边提到的debug需求? 10/01 12:04
→ MADAOTW: 我也觉得跟Gizmos有像 10/01 12:07
Gizmos应该不太一样
主要能够在画面上动态绘制的方法有三种:
1. Debug.DrawLine
2. Gizmos.Draw*
3. Graphics.Draw*
(GL.* 因为是效能不佳的immediate mode所以就不考虑了)
三者各有不同,以下分辨一下
Debug.DrawLine
顾名思义,就是debug draw线条
默认只有editor mode的时候会显示,play mode的时候要额外打开gizmos选项才会显示
不会被编译进build输出的执行档,所以不会在成品中显示
Gizmos.Draw*
需要跟物件的OnDrawGizmos绑定才有办法发挥作用
在物件的OnDrawGizmos中绘制的图形会成为物体点选区域的一部份
(原理该是绘制时额外在stencil buffer上写入物件ID,再借由鼠标点选像素取样)
可透过Gizmos.color更改整体图形绘制的颜色,除此之外无法客制渲染方法
Gizmos.DrawMesh可绘制任意图形,但是仍有单色且无法客制渲染方法的限制
只有editor mode才会显示,无法在play mode中当debug draw用
而且不会被编译进build输出的执行档,所以也不会在成品中显示
Graphics.Draw*
这是泛用型绘制指令,所有mode之下都可以显示
也无需跟物件绑定,任何script都可以用Graphics.Draw*任意绘制或视觉化资料
可用mesh绘制任意图形,且可以用客制vertex/fragment/surface shader
效能高、可用shader客制、又各mode可用,所以是我debug draw的首选
唯一做不到的就是像Gizmos一样可以扩增物件点选区域
但如果有需要的话,把我的cached mesh逻辑抽离出来就可以和Gizmos共用了
以上是我的个人理解
但最近才刚开始研究Unity,可能有搞错什么细节
有错烦请指正
作者: Frostx (Naga)
2016-10-01 12:04:00
不知道Gizmos有没有符合这边提到的debug需求?
作者:
MADAOTW
(MADAO)
2016-10-01 12:07:00
我也觉得跟Gizmos有像
作者:
dreamnook
(亚龙)
2017-10-01 13:05:00
你们是要准备做手机游戏了吗xD
楼主:
cjcat2266
(CJ Cat)
2017-10-01 13:11:00
蛤?"我们"是说公司?没有啊,这是我自己兴趣使然的研究对未来生成blog的3D动态范例GIF也很有帮助之前做数值弹簧范例的时候是有用过一次Unity啦,不过那次也是摸皮毛,弄出GIF就没碰了
http://bit.ly/2fHulp4
这次是比较有目的性和系统性的研究+学习
继续阅读
Re: [分享] 用缓存mesh和vert shader实作debug draw
sakyer
[请益] 自制UI的切入点
insjp
[分享] 用缓存mesh和vert shader实作debug draw
cjcat2266
[请益] 如何有系统地控制 Unity Mecanim
RoastSaury
[请益] 哪一种工具适合做html5 2D益智游戏?
cdsu99
[请益] 练习程式有需要背或默写吗?
anjohn
Re: [请益] 让物件沿着不规则静态背景移动?
sakyer
[问卷] 游戏创业者行为研究
dudewow
[请益] 关于制作拟真的室内场景软件
seric34
[请益] 让物件沿着不规则静态背景移动?
Laiwah
Links
booklink
Contact Us: admin [ a t ] ucptt.com