我有一个围绕y轴旋转的3个顶点三角形.我发现"怪异"的一件事是GL默认正交投影中的归一化坐标.我使用过像SDL和SFML这样的二维库,几乎总是处理像素.你说你想要一个50x50像素的图像表面,这就是你得到的.所以最初我很难说从[-1,1]中限制我的顶点位置选择.
为什么正交坐标必须标准化?透视投影是否相同?如果是这样,你怎么说你希望你的对象的原点在z = -10?(我快速浏览矩阵m ath说透视是不同的.关于除以'w'创建同质(与标准化相同的东西?)坐标的东西,但我不确定).
gl_Position = View*Model*Project*Vertex;
我已经看到上面的等式,我很惊讶于着色器中使用的变量gl_Position如何既可以表示模型/对象的当前顶点的位置,又可以表示视图/投影的位置,或者相机.这是如何运作的?我通过乘法理解所有信息都存储在一个矩阵中,但OpenGL如何使用一个矩阵,其信息现在被组合起来说,"好吧,gl_Position的这部分/分数用于摄像机,而另一部分是信息该模型将要去哪里."?(顺便说一句,我不太确定Vertex vec4代表什么.我认为模型的所有顶点都在模型内部.任何想法?
还有一个问题,如果你只是想移动相机,例如在FPS游戏中你移动鼠标向上移动,但是除了相机之外没有任何物体被旋转或翻译(我认为),上面的等式会看起来像什么像这样?
gl_Position =查看*项目;
我遇到了这段代码.从输出时,除以2,但语法不熟悉我,我可以推断,其余阵列存储阵列数量的剩余部分.
#include <iostream>
#include <functional>
#include <algorithm>
using namespace std;
int main ( )
{
int numbers[ ] = {1, 2, 3};
int remainders[3];
transform ( numbers, numbers + 3, remainders, bind2nd(modulus<int>( ), 2) );
for (int i = 0; i < 3; i++)
{
cout << (remainders[i] == 1 ? "odd" : "even") << "\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
变换和bind2nd在这种情况下做了什么?我阅读了文档,但我不清楚.
我试图在 MSDN 中使用“VerQueryValue”函数获取产品名称。
我得到的这个功能只是版本
我想要一个产品名称
并且,Qt 不支持获取文件信息(文件版本、文件产品名称等)
我尝试在 Windows 10 上安装官方 Vulkan SDK。不幸的是,安装程序要求管理员权限,而我显然没有。
尽管如此:到底为什么呢?SDK不只是一堆与库和一些热门示例混合在一起的头文件吗?
我正在寻找一种使用 MinGW 开始使用 Vulkan 的方法。有我可以使用的 .zip 文件吗?某种预编译?或者我至少能够自己编译 Vulkan 吗?
当您可以在没有它的情况下创建窗口时,拥有 WM_CREATE 消息有什么意义。
在 WM_CREATE 之外调用 void CreateWindowA 有效,那么有什么关系呢?
我正在尝试添加成员函数的定义,game.h但出现编译器错误,指出 void 函数是先前定义的。game.h和 也输出相同的错误game.cpp。这几乎就像pragma once不起作用?我在 Rider 中遇到错误,也在game.cpp文件中说了同样的事情,但仅限于 void 函数。
游戏.h
\n#pragma once\n\n#include "SDL2/SDL.h"\n\n\nclass Game{\npublic:\n\n Game() {}\n ~Game() {}\n\n bool init(const char* title, int xPos, int yPos, int width,int height, int flags);\n\n\n\n void render(){};\n void update(){};\n void handleEvents(){};\n void clean(){};\n\n\n bool running() {return m_bRunning;}\n\nprivate:\n\n SDL_Window* m_pWindow;\n SDL_Renderer* m_pRenderer;\n\n bool m_bRunning{};\n};\nRun Code Online (Sandbox Code Playgroud)\n游戏.cpp
\n#include <iostream>\n#include "game.h"\n\n\nbool Game::init(const char* title, int xPos, int yPos, int width, int height, int flags){\n\n …Run Code Online (Sandbox Code Playgroud) 如何设置SDL在C中工作?我的意思是没有类,纯C语言.我在C中看到很少使用SDL的项目,但是当我尝试设置或下载时,只有C++版本.您能否指导我如何在Mac(Xcode)或Windows环境中安装SDL for C?
编辑:我知道SDL是用C语言编写的,但它并没有使它成为C库.第一个教程(以及我检查过的所有其他课程都大量使用类.第一个来自网站上的教程部分,在第二页上使用类代码.http://www.sdltutorials.com/sdl-tutorial-basics
LazyFoo教程虽然陈旧,但它们也使用c ++.
你能把我链接到使用C的教程吗?
我想知道在3D中找到任意形状中心的准确方法.在图中,我已经解释了3个案例.
在第一种情况下,我们如何计算任意点的中心?一个想法是所有点的总和除以总点数.这是唯一的方法,它是否准确?
第二是如何计算3D中不规则任意形状的近似中心?这是1的相同情况吗?
我们如何计算由任意顶点组成的弯曲/弯曲管的中心线?对于这个问题,我们必须先解决两个案例吗?

我想知道,还有什么其他的东西(例如3D引擎)我必须学习如何创建像Mafia 2或GTA IV这样的游戏.
我正在尝试编译一个程序(在OpenGL中)Ubuntu,但是我收到了这个错误
fatal error: common.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我不确定我需要为此安装哪个软件包.
我想了解如何在 OpenGL 中跟踪移动对象。对象的位置将是连续输入。另外,如果对象移出屏幕怎么办?