Articles of 空间

正切和双向vector的空间

我有一个非常简单的问题,我不能确定答案。 当我们使用顶点位置和纹理坐标来计算它们时,切线(T)和二进制(B)向量的空间是多less?

相对于vector的速度

所以我在世界空间里有一个速度vectorb ,我在世界空间有一个“指向”vectora 。 我需要知道如何使速度vector相对于“指向”vector。 更好的解释如下图: 所以在左边你可以看到世界空间中的vector,但在右边 – 空间中的vector。 我需要从世界空间的_ a空间获取向量b 。

为什么我们说东西在空间图中围绕z轴旋转?

我已经开始了游戏开发的旅程。 我需要学习很多3D术语,因为我想制作3D游戏。 我了解到X在右边,Y在上面,Z在向你。 那么为什么当一个空间旋转,我们说它是围绕Z轴旋转? 我无法在网上find具体的答案。 感谢您的阅读,我期待您的回答。

我是否应该存储本地向前/向右/向上vector或必要时计算?

我正在开发一个对象采摘和翻译/旋转/缩放小发明系统在我的引擎中,你select的对象,并在他们的3D编辑器像时尚(如搅拌机) 在我的转换结构中,我存储位置,旋转角度,旋转轴和统一的比例值。 当转换我的对象,我建立了TRSmatrix,形成我的ModelToWorldmatrix。 都好。 现在我想添加本地和世界翻译的概念。 即您select一个对象,并且可以沿着其本地x轴或全局x轴移动它。 全球运动很容易,我只是直接添加到我的位置vector。 但是对于本地人来说,我必须建立一个本地前锋/右/上的向量。 例如 v3 GlobalUp = V3(0, 1, 0); v3 LocalUp = m4_Rotate(Rotation->Angle, Rotation->Axis) * GlobalUp; 然后我翻译我的位置的数量: Selection->Transform.Position += LocalUp; 我有点担心是否应该在我的变换中存储这些局部向上/向前/向右的向量(这意味着我必须在每次更新函数中每帧计算一次,但是在这之后每次使用都不需要计算)或者只需要时(不需要计算每一帧,但我必须调用一个函数来做每次我需要一个计算,我仍然可以保留在我的使用区域中的一个局部variables的价值,如果我使用它超过一旦) 我不知道要采取什么方法,但我倾向于根据需要来计算它们。 每种方法都有其他的优点/缺点吗? 或者这是没有“绝对正确”方式的事情之一呢? 任何建议表示赞赏!

为什么切线空间中的法线贴图而不是正常空间?

我想在我的小游戏引擎中实现正常的映射。 当进入法线贴图时,我想知道为什么法线贴图通常在切线空间中,而不是在正常空间中? 对象空间中的法线贴图处理起来很复杂,对我来说很明显。 但是在正常的空间里,它们可以很容易的添加到顶点正常,不是吗? 似乎切线空间需要为每个像素构建一个变换matrix。

空间和声音? 藐视物理?

为什么在太空射击游戏如小行星等有音效? 空间中没有媒体可以通过。 然而,我们听到枪声和爆炸。 我不是在谈论背景音乐/声音。

随机生成的物体之间的空间

林不知道这个问题会有一个简单的答案,但不管怎样,我都会问。 我正在编写一个无休止的滚动游戏,玩家的角色不断“下降”。 当他们堕落时,他们躲避松果。 我想要程序随机生成松果(现在就这样做); 不过,我需要一种方法来检查松果之间是否有足够的空间,这样玩家的路线永远不会被意外阻挡。 简单地编程松果之间的最小距离并不难。 问题是我想让一些锥体紧挨着对方,但是还是要检查一下,确保其他人之间有空间让玩家安全地躲避松果。 基本上,我不希望每一个松果之间都有相同的空间。 我曾经考虑过制作一个松果间距必须遵守的网格模式,但是Im在比较网格上的空间时遇到了困难,所以当一些锥体被允许彼此相邻时,其他的则不然。 如果问题不清楚,让我知道,我试图解释更好,包括图片或东西。

世界空间和模型空间傻瓜版

我绝对不是一个3d程序员,但最近还是自己去做了一个基于Voxel的游戏,而且我对理解matrix中的一些概念(我的math知识有限)有些麻烦。 所以这是我的情况…(假设我已经宣布了其他的东西,但为简单起见,省略) 我有我的相机类,我已经宣布了3个基本matrix(我认为这里有一些错误的开始) class Camera { public Matrix World { get; set; } public Matrix View { get; set; } public Matrix Proj { get; set; } } 现在我还有其他一些像BaseModel类,一个块类和一个块类,给我所有的核心位,我需要一个基于体素的建模系统… abstract class BaseModel { public Chunk[] { get; } } class Chunk { Block[,,] Blocks { get;set; } } class Block { public Bool IsActive { […]

如何重新映射世界空间来屏幕空间?

我很喜欢游戏开发,而在Python中使用一个简单的graphics库来制作2D游戏时,我注意到库的坐标系统的左上角为(0,0),而传统上(至less在math)左下角设置为(0,0)。 我想在物理计算中保持世界空间,但是想要将世界空间坐标映射到屏幕空间。 此外,我希望世界空间大小比屏幕空间大10倍。 就编程方法而言,我应该如何以最模块化的方式去做这件事?

切线空间阴影/照明有什么优点,衰减如何?

在这里的几个话题中,有人提出在切线空间进行照明比在世界空间进行照明要好。 现在我正在相机空间做这个,但是它真的和世界空间相似。 我的问题是,为什么切线空间是一个更好的select(如果它使用正常的地图)? 其次,从模型空间到世界空间,反之亦然,应用一个尺度。 这在减弱光线方面会产生一个问题,因为距离与在我的光线位置的世界空间中的距离是完全不同的。 我将如何处理这个? 提前致谢 编辑:说明衰减问题