Questions tagged «matrix»

以行和列排列的数字,符号或表达式的2D数组。每行必须具有相同的列数。数字,符号或表达式本身称为元素或条目。

1
将虚构的4D网格向下投影到屏幕
作为一种心理锻炼,我试图想象将任意的4D网格投影到屏幕(2D)上。 我猜单个4D三角形仍然只包含3个点,但是这3个点中的每一个都将由具有4个维度的列定义。 定义一个投影矩阵先将4D空间映射到3D空间,然后让OpenGL将自己的数据从该数据投影到2D空间是否更有意义? 还是最好只计划直接从4投影到2? 非常感谢。

3
如何从视图矩阵获取翻译
如何从摄像机的视图矩阵中检索摄像机的世界空间位置?我对这个问题所见的唯一答案表明翻译是在最后一行/列中,但由于矩阵包含[x(右)点,y(向上),z(点)外观),因此该操作无效。
11 3d  mathematics  matrix 

1
屏幕空间到世界空间
我正在编写一个2D游戏,其中我的游戏世界的x轴从左到右,y轴从上到下,z轴在屏幕外: 尽管我的游戏世界是自上而下的,但游戏的渲染却略有倾斜: 我正在研究从世界空间到屏幕空间的投影,反之亦然。我的前者工作如下: var viewport = new Viewport(0, 0, this.ScreenWidth, this.ScreenHeight); var screenPoint = viewport.Project(worldPoint.NegateY(), this.ProjectionMatrix, this.ViewMatrix, this.WorldMatrix); 该NegateY()扩展方法不正是它听起来像,因为XNA的Ÿ线延伸自下而上,而不是自上而下。上面的屏幕截图显示了所有工作。基本上,我在3D空间中有一堆点,然后在屏幕空间中进行渲染。我可以实时修改相机属性,并看到它动画到新位置。显然,我的实际游戏将使用精灵而不是点,并且摄影机的位置将被固定,但是我只是在尝试所有数学运算之前。 现在,我正在尝试以另一种方式转换。也就是说,给定上方屏幕空间中的x和y点,请确定世界空间中的相应点。因此,如果将光标指向绿色梯形的左下角,则希望获得世界空间读数(0,480)。该ž坐标无关。或者,当映射回世界空间时,z坐标将始终为零。本质上,我想实现此方法签名: public Vector2 ScreenPointToWorld(Vector2 point) 我已经尝试了几种方法来使它正常工作,但是没有运气。我最近的想法是,我需要调用Viewport.Unproject近两次不同/远ž值,计算得到的Ray,规范它,然后计算出的交点Ray有Plane,基本上代表了我的世界的地面。但是,我陷入了最后一步,不确定是否使事情变得过于复杂。 谁能为我指出如何实现这一目标的正确方向?
10 xna  c#  matrix  projection  screen 

2
如何从转换矩阵中提取方向?
我有一个4x4的转换矩阵M,我想找出通过M转换后的球体的形状。(球体在原点,半径为1。) 我知道只要将M乘以(0,0,0,1)就可以找到中心。 但是,由于M可以挤压和旋转球体,因此半径成为问题。如何找出所得椭球的新半径?有什么办法找出方向吗? 更具体地说,我需要知道包围转换后的球体的边界球体的大小。换句话说,| M * V-M *(0,0,0,1)|的最大值是多少,其中V是单位矢量(原始球体上的一个点)。

5
为什么在Vector3s中不能使用运算符'> ='?
我正在尝试获得一个矩形,以便在我称为_positionA和的两个位置之间移动_positionB。两者都是类型Vector3。矩形移动得很好。但是,到达时_positionB它不会像应该的那样朝相反的方向移动。 我回到代码中看一看。我得出的结论是,随着对象的移动,if代码中的语句错过了rects位置等于的框架_positionB。如果rects的位置大于或等于, 我决定将代码修改为反向_positionB。我的代码不太长,因此我将在下面显示它: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

1
gluLookAt如何工作?
据我了解, gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 等效于: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); 但是当我打印出ModelView矩阵时,对的调用glTranslatef()似乎无法正常工作。这是代码片段: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.