下载 App

【3D本地分屏】踩坑和经验

修改于06/1869 浏览开发交流
不长,随便写的,ai也干了。
现象:本地双人分屏模式下,部分移动设备出现画面异常:
设备 A(🐉768g):左半屏出现竖条纹/花屏,严重阻碍P1。
设备 B(🐔9400e):按钮周围出现小范围黑色方块,影响较小。
影响范围:部分移动 GPU(Mali / Adreno都有)。
排查过程:嗒啦啦干的。
1.NanoVG 非凸路径导致 stencil 冲突(人话就是按钮用了什么东西冲突了)(这怎么可能呢)
2.nvgRadialGradient shader 在移动 GPU 异常(不懂,执行的结果是移除所有渐变,改为纯色,最终无效)
3.自定义按钮绘制代码有问题(同1,有问题早就爆了[表情_捂脸哭])
4.VirtualControls 第二个 NanoVG 上下文 GL 状态冲突(尝试标空,让其避免冲突。结果没有用。)
5.主 NanoVG 上下文导致问题(同理,执行的操作是分屏时跳过主上下文 nvgBeginFrame/nvgEndFrame,但是还是失败了)
6.3D多视口 IntRect 裁切有问题 (最后的稻草了。改成了交替渲染,单数帧渲染你的,双数帧渲染我的。最后不花屏了。就是画面像喝多了一样乱抽)
结论:最终确认为第六点。嗒啦啦不禁感慨:renderer:SetNumViewports(2) + Viewport.rect = IntRect(半屏) 在部分移动 GPU 上可能存在驱动兼容性问题。引擎的多视口裁切依赖 glViewport + glScissor 切换,某些移动 GPU 驱动对此处理不当,导致帧缓冲数据污染口牙。
解决方法直接粘了吧,省点事——
[表情_叹气]
## 解决方案:RenderToTexture + 正交拼合(方案 A)
### 原理
不使用引擎的多视口 + IntRect 裁切,而是:
1. 两个游戏相机各自渲染到独立的 `Texture2D`(RenderTarget)
2. 用一个全屏正交相机 + 合成场景,将两张 RT 纹理贴到左右两个 quad 上输出
```
原方案(花屏):
  renderer → viewport0 (IntRect 左半) → 相机1
           → viewport1 (IntRect 右半) → 相机2
新方案(RTT 拼合):
  RenderTexture1 ← viewport → 相机1
  RenderTexture2 ← viewport → 相机2
  renderer → viewport0 (全屏) → 正交相机 → 合成场景
                                             ├─ Quad左 (贴RT1)
                                             └─ Quad右 (贴RT2)
```
### 关键实现细节
```lua
-- 创建 RenderTexture
local rt = Texture2D.new()
rt:SetNumLevels(1)
rt:SetSize(halfW, screenH, Graphics:GetRGBAFormat(), TEXTURE_RENDERTARGET)
rt.filterMode = FILTER_BILINEAR
-- 注意:Graphics:GetRGBAFormat() 是类方法(大写 G + 冒号)
-- 不是 graphics:GetRGBAFormat()(实例方法会报错)
-- 设置 RenderSurface
local surface = rt:GetRenderSurface()
surface:SetUpdateMode(SURFACE_UPDATEALWAYS)
surface:SetNumViewports(1)
surface:SetViewport(0, Viewport:new(scene, camera))
```
不过因为有额外合成一次的关系,会导致画面会被后处理两次,结果就是会修理后分屏的画面会变暗。需要留意。
那至于到底是为什么,只能交给专业人士了。我哪知道这些啊,我就是一要饭的。
【新游上线】末日100天截图
【新游上线】末日100天
大家好,我们是《末日100天》的开发者Paul~ 这是一款围绕「生存-经营-轮回」展开的废土策略小游戏:白天分配 3 点行动力经营据点,夜里迎接十天一循环的尸潮,每张地图第 100 天还有一场首领战等着你。五张地图、五大区域机制、可继承的轮回遗产,以及钻石商城里的抽奖机——我们希望每次重开都有一点点新意。 以下是游戏简单介绍: 1.游戏背景 废土历元年,未知病毒席卷全球,城市化为死地。幸存者们退守
9 赞
6 回复
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
68 赞
21 回复
【游戏上新】圆力大踢截图
【游戏上新】圆力大踢
休闲跟电脑斗智斗勇游戏。 整体玩法都围绕把对方踢出界外展开。 不过游戏里没有多人模式了,耽误了很多进度 后续可能会考虑加新的内容。 就这样~
2 赞
4 回复
【UI教程】如何将已有的效果图应用为实际的UI界面截图
【UI教程】如何将已有的效果图应用为实际的UI界面
在经过了一些折腾和比较折磨的尝试后,我总算是摸清楚了嗒啦啦怎么把UI效果图转换为实际游戏中的UI组件,今天就给大家带来这部分的经验分享。 tips:1.本篇教程需要各位掌握最基本的ps使用,具体的操作部分我会大致讲解,但仍需各位自行学习ps的基本操作,部分可以由ai代劳的环节我会注明。 2.本篇教程需要在以我前两篇教程作为前置环节,请在阅读这两篇前置教程后再进行本篇教程内容的学习 在按照前
11 赞
5 回复
【游戏上新】坠夜截图
【游戏上新】坠夜
明明这是惊悚!走路!角色扮演游戏啊!你在干什么! 在我一鞭又一鞭的抽打下,AI终于不再生成《午夜狂飙》这种标题了,可喜可贺[心动小镇_点赞] 不过这是一次尝试,看看在对美术、建模、游戏结构什么都不懂的情况下到底能做到什么程度。 (当然肯定是不如那些很猛的小品级恐怖游戏了......) 咳咳,后面还会做些优化的!大概!回到正题。 雨夜、酒罐、碎裂的蛋糕。 是否能从中回想到什么? 但是这逃无可逃,留给
4 赞
4 回复
03:06
为了不被斩杀,我只能做到这些了截图
为了不被斩杀,我只能做到这些了
之前一直申请不到计划3,之前说太花哨,后面说体量完成度不足,在我一番小作文下,编辑终于给了我解答,什么原生质感,玩家开局体验啥的。 本来计划2也够用,准备以后再优化了,结果计划2赠送的积分要砍半了,学生党实在消费不起,于是只能再冲一波计划3了 从周六中午到现在一天半时间,优化了一遍角色卡,战斗卡,还有抽卡界面,优化了新手教程,该说不说确实比之前要舒服些。 前半部分为新版,后半部分为旧版。 明天再次
45 赞
9 回复
开发心得-界面布局心得截图
开发心得-界面布局心得
大家好,我正在用 TapTap 制造制作一款2D 治愈林间徒步旅行游戏《徒步荒野》。 我分享一下我的开发心得,希望能有用,下面是一些界面布局的心得。 第一步:定版式、操作 先确定游戏是横版还是竖版、需要哪些操作按钮,敲定整体玩法思路。 我的玩法灵感参考《边境之旅》,主打散步看风景、沿途触发随机事件。 原版是 3D,考虑到自己是新手,选择2D 横版街机式来做,制作更简单、好上手。 第二步:敲定全局美
6 赞
3 回复
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
124 赞
44 回复
【作品分享】做了款《心动恋综模拟器》截图
【作品分享】做了款《心动恋综模拟器》
大家好,我是秋夜海棠,最近一个人在用 TapTap Maker 做《心动恋综模拟器》。折腾了好一阵,来论坛交一份作业,也想找些同样喜欢恋综和剧情游戏的朋友聊聊。 游戏从搬进海岛小屋开始。一起吃饭、聊天、约会,晚上再想想,那条心动短信究竟要发给谁。十三天相处下来,有人会越来越近,也有人聊得很好,最后还是没走到一起。 目前可以选择不同的男女主角体验。除了主线剧情,也能换穿搭、在小岛上找人单独相处,发朋
[开发心得]让塔拉拉帮你的2D游戏做个动作编辑器(KEIS)截图
[开发心得]让塔拉拉帮你的2D游戏做个动作编辑器(KEIS)
先叠甲:笔者没有引擎开发经验,此处提供一个思路,希望我能抛砖引玉让大佬们发现更强的办法大家一起进步;(实在是可以优化的空间还很多,实则我积分告急了[表情_吐舌头]) 文字太多不想看的读者,文章底部有伪焚诀可以自取 正在用塔拉拉做一个武侠游戏,但觉得无法编辑动作对于武侠游戏多少是个硬伤, 如果绘制大量精灵图又无法角色通用,同时对于我的美术需求量也会暴涨; //提炼我的需求:各角色通用,且不会增加
精华
23 赞
5 回复