场景里多个飞机运动,有时候会出现重叠的情况,如图
但我看捕鱼达人3里,3D的鱼基本都没有重叠,想达到那种效果,应该怎么处理呢,请各位大佬指教下,:)
运动轨迹不要有重叠,比如每条鱼的纵向坐标都不一样?
这种不负责的回答也发上来
哪里不负责了?这种情况你选择正交相机,调整每个鱼的深度不就可以了?
来个负责的回答打脸。
他说的是要线路不重叠,这能做到吗?
你说的是深度,你试过吗?你能保证每条鱼的深度不一样,有多少不一样?几千条鱼游下来,你怎么调?
突然想到一个事:把深度像对象池那样处理?而且还分组。不同的鱼在不同的组里。
我提供个不负责的回答,飞机添加到场景时,立刻计算好路线,按这个路线飞行,或者每帧检测,快要重叠了就调整下方向。
虽然这两方法都很麻烦,而且基本跟没说一样,但是反正不用我负责。
因为第一条回答是引擎的团队成员,本身应该具有非常强的专业素质才行。
他应该要为他的工作负责(我猜这是他的工作内容)。
其它人都可以随便回答。
线路不重叠那是游戏逻辑的事,应该自己解决啊。我理解的是穿模问题
挖坟,我也遇到这种问题,请问大佬这种最后是怎么解决的?
比如屏幕上最大200条鱼。那把深度缓冲分成200份,每条鱼都分配一个独立的一份,每条鱼的深度缓冲都写入自己的范围内,这样就不会重叠。以前用cocos2dx时的项目,使用这种方法解决了,没有重叠问题。
但可能出现远处的鱼在近处鱼的前面问题,要处理这个问题,需要根据z实时计算当前应该在哪一份比较合理。
当时搞的2dx,直接修改了c++代码,每绘制一条鱼前,调用函数 glDepthRangef,将深度限制在一个范围内。这样因为每条鱼的深度缓存范围不同,因此不会重叠。
Creator没有搞过,不敢随意说,怕误导。
我来个负责任的解法:让场景内只存在一架飞机。
解决不了问题就解决问题的对象是吧 ,做队列让每个飞机的坐标和深度不重叠行不行
楼主这个场景要做不重合,是有点不合理的。楼主要的效果是捕鱼,捕鱼的画面视角看到的鱼是侧面,而楼主的飞机是斜45度。硬要做的话,最终效果不会好。前面说的Z轴池就可以实现了。
如果用z轴池的话,像我们项目,场景内上限40条鱼,每条鱼的z轴高100左右的话,那摄像机的远裁剪距离Far至少要4000,4000会不会太大?
我技术不精,我都是随便设的剪裁,剪裁大小没发现有影响渲染效率