找回密码
 立即注册
查看: 849|回复: 8

Unity中,实现在已有模型上挖孔的思路是什么?

[复制链接]
发表于 2021-1-1 09:52 | 显示全部楼层 |阅读模式
Unity中,实现在已有模型上挖孔的思路是什么?
发表于 2021-1-1 09:53 | 显示全部楼层
简单粗暴的实现:美术做两个模型,替换就好啦。
实时改变顶点,除了麻烦还要考虑性能。
题主说的第1个思路,用shader控制不渲染cube内部,如果你的窗户不放进墙壁里 只是前后遮挡,应该可以。具体实现,shader方面我没深入了解。
 楼主| 发表于 2021-1-1 09:57 | 显示全部楼层
最近写了个screen space 布尔减的shader, 发布到asset store了, Asset Store链接。思路很简单,用来减的物体渲染正面和背面深度到一张贴图,然后被减的物体读取该贴图把中间的clip掉。

动图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2021-1-1 10:06 | 显示全部楼层
你需要的可能是像Unreal引擎中的BSP Brush功能,Unity也有类似的插件,如SabreCSG Brush Tools

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-1-1 10:06 | 显示全部楼层
首先你要说做什么事,然后再来讨论怎么做

比如你这个问题我第一反应你要做的是类似装修网站上的预览效果,窗户需要实时替换,并且窗户大小,位置也需要根据不同的操作变化。

这样的话你就需要临时用shader处理。
或者计算能力允许的话,墙体改为拼接,在需要开窗的位置不放置墙体模型,围绕窗户做墙体。

如果窗户位置固定,重做模型吧,这个比较简单。
发表于 2021-1-1 10:15 | 显示全部楼层
手动生成顶点构建mesh
三角形拆分算法打孔
重新计算uv坐标
贴图
搞定
发表于 2021-1-1 10:18 | 显示全部楼层
stencil或者ztest都有办法,但是unity里用这个实现光影是无法穿透的,
发表于 2021-1-1 10:24 | 显示全部楼层
你好,我问一下  你这个能发布到安卓或者ios吗
发表于 2021-1-1 10:26 | 显示全部楼层
可以试试通过morpher来实现
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 06:28 , Processed in 0.096688 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表