用户:
imgainary_number查看:245 回复:6 评论:15 创建时间:2024-04-06T21:04:08
免责声明:
该帖只讲入门3D最合适用哪种算法
而不讲算法的实现方法
好了,正片开始
如果你真的在3D方面一窍不通而还要入门3D
那我建议你使用Raycasting,该算法是基于2D的地图渲染
具体原理是:从player位置发射若干条射线对地图采样,获取每条射线的长度,算出高度,最后渲染
当然Raycasting不只有基于2D地图的,还有2维列表的,甚至3维列表的
如果你不喜欢Raycasting的渲染效果,或者说Raycasting太费性能(其实只要把渲染部分分离即可)
那你只需要记住以下公式:
x'=x*f/z
y'=y*f/z
你就可以在有限的性能内渲染稍微复杂的几何体
有什么遗漏在评论区补充
星星喵STARMEOW一起嘛?也是3D项目:https://kitten4.codemao.cn/?invite_code=71TDGJ喵:71TDGJ我在编程猫发起了一个协作项目,点击链接即可加入一起创作! (目前只是画图3D转编程猫3维世界的一个引擎)
点赞0
评论
我用的是电视
况且我还有一个未完成3D项目
但是话说你这个3D项目是开发3D引擎么?
root㉿ikunli…………别装了哥,我要被你压死了
点赞0
评论
az
这能算装吗?
这些算法都是3D的入门级别的算法
………………
https://dao3.fun/edit/db1e6c112122db1f236f?p=922d97bf13dc46cd972e48292380ba83
百年匠魂x'=tfx/(z+f) y'=tfy/(z+f)
点赞0
评论
x'=x*(f/z) y'=y*(f/z) =》f/z = x'*x=y'*y
这样投影似乎更自然,https://shequ.codemao.cn/work/211402715
能投影就行了
欸,我想到怎样投影更加自然了