首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让精灵与three.js和不同类型的相机一起工作

让精灵与three.js和不同类型的相机一起工作
EN

Stack Overflow用户
提问于 2013-06-18 23:55:43
回答 1查看 3.8K关注 0票数 0

我有一个关于如何让精灵使用透视和正交相机与three.js协同工作的问题。

我在一个场景中渲染了一座建筑。在场景中的一个位置,所有的级别都堆叠在一起,以提供建筑的3D视图,并使用正交摄像机来查看它。在场景的另一部分,我只显示了建筑物的选定楼层,并使用了透视相机。屏幕在两个视图之间划分。这个想法是用户从建筑视图中选择一个级别,并且在屏幕的另一部分上显示所选级别的更详细的地图。

我玩了一下精灵,据我所知,如果精灵是用透视相机查看的,那么精灵的scale属性就是它的size属性,如果用正交相机查看精灵,scale属性就会根据视口缩放精灵。

我把精灵放在两个摄像头都能看到的地方,看起来就是这样。如果我将精灵缩放0.5倍,那么精灵占据了正交摄影机的一半的视口,并且我不能用透视摄影机看到它(大概是因为它,精灵是0.5px x 0.5px,并且舍入到0px (未渲染,或者1px,实际上是不可见的)。如果我将精灵缩放50倍,透视相机可以看到它(可能是因为它是50px x 50px正方形),正交相机被精灵拍摄(可能是因为它被缩放了50倍的视口)。

我的理解正确吗?

我之所以这样问,是因为在我渲染的场景中,建筑和细节区域在x轴上相距约1000个单位。如果我把一个精灵放在细节地图上的某个地方,我需要它是35x35像素,当我这样做的时候,它对细节视图很好,但是建筑视图被覆盖了。我玩了玩数字,似乎如果我将精灵缩放4,它开始显示在我的建筑视图上,即使视图之间有1000个单位的距离,并且透视相机看不到精灵。

所以。如果我的理解是正确的,那么我需要使用不同的场景;在视图之间有更大的差距;为两个视图使用相同的相机类型;或者不使用精灵。

EN

回答 1

Stack Overflow用户

发布于 2013-06-19 01:20:17

基本上有两种不同的方法可以使用精灵,或者使用2D屏幕坐标,或者使用3D场景坐标。也许场景坐标就是你需要的?有关这两种情况的示例,请查看下面的示例:

http://stemkoski.github.io/Three.js/Sprites.html

特别是,当您在演示中放大和缩小时,请注意场景中的精灵会改变大小,而其他的不会改变。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17173522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档