Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 351|回复: 5

[编程求助] MOD开发屏幕拾取功能和3d坐标转屏幕坐标如何转换?

[复制链接]
xiaov6666 当前离线
积分
973
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-2-2
查看详细资料
发表于 2020-9-21 11:00:53 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
以下是个很有意思的技术问题:
(我在写一个原创mod,大概想实现类似LOL的视角,然后发现技术问题,困扰了我好几天查遍了谷歌百度毫无办法,所以前来求助。)
问题:我想用鼠标点击屏幕时移动玩家到指定位置。因此我使用了透明gui来实现鼠标操作。那么问题来了,我点击的是屏幕坐标,如何转换为世界3d的坐标?同样的,我如何把3d坐标转换为2d坐标?

请求大佬前来评论回答问题!
xiaov6666 当前离线
积分
973
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-2-2
查看详细资料
 楼主| 发表于 2020-9-21 20:42:01 来自手机 | 显示全部楼层
(*•̀ᴗ•́*)و ̑̑来解决问题了大家。
相关的mod如果有其实反编译也可以学习到是如何实现的。也欢迎丢过来有实现这些功能的mod,和解答问题。
回复

使用道具 举报

dudujerry 当前离线
积分
141
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-23
查看详细资料
发表于 2020-9-21 22:46:10 | 显示全部楼层
我没写过mod,但是也是搞相关开发的,我们一般是获取当前点击坐标的图元所被渲染的顶点的xyz坐标,然后用MVP矩阵的逆乘回去就是原坐标(可能要用到着色器)。要么就是做个射线判断相交位置,希望能给你提供思路。
回复

使用道具 举报

ksgfk 当前离线
积分
1117
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-9-8
查看详细资料
发表于 2020-9-27 10:45:11 | 显示全部楼层
获取鼠标点击的位置,用观测变换(Viewing transformation),屏幕空间变换的逆变换这个坐标,应该能得到世界坐标了吧...再以摄像机位置和点的世界坐标发射射线....(图形学还没入门



mc选取方块应该用的是射线?或许可以参考下(
回复

使用道具 举报

xiaov6666 当前离线
积分
973
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-2-2
查看详细资料
 楼主| 发表于 2020-10-7 21:34:38 | 显示全部楼层
ksgfk 发表于 2020-9-27 10:45
获取鼠标点击的位置,用观测变换(Viewing transformation),屏幕空间变换的逆变换这个坐标,应该能得到世 ...

MC是用玩家眼睛的位置 到 玩家看向前方的位置,最终在这两个坐标中来检测来选取的方块。

但这个方案并不适用屏幕空间的任意一点 转 世界坐标。
回复

使用道具 举报

至高无上的怀琪 当前离线
积分
34
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-9-19
查看详细资料
发表于 2020-10-8 12:18:57 | 显示全部楼层
696461561541
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-10-22 16:44 , Processed in 0.050034 second(s), Total 16, Slave 15 queries, Release: Build.2020.09.30 1852, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

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