我有一个简单的三角形场景.我正在使用透视投影.我设置了我的MVP矩阵(在GLM的帮助下),如下所示:
glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.0f);
glm::mat4 View = glm::lookAt(
glm::vec3(0,0,5), // Camera is at (0,0,5), in World Space
glm::vec3(0,0,0), // and looks at the origin
glm::vec3(0,1,0) // Head is up (set to 0,-1,0 to look upside-down)
);
glm::mat4 Model = glm::mat4(1.0f);
glm::mat4 MVP = Projection * View * Model;
Run Code Online (Sandbox Code Playgroud)
一切正常,我可以改变相机的值,三角形仍然可以正常显示.
但我想使用正交投影.当我将投影矩阵更改为正交投影时,它无法预测,我无法显示三角形,或者我只是在屏幕的一角看到它的一小部分.要使用正交投影,我这样做:
glm::mat4 Projection = glm::ortho( 0.0f, 800.0f, 600.0f, 0.0f,-5.0f, 5.0f);
Run Code Online (Sandbox Code Playgroud)
虽然我不改变视图和模型矩阵中的任何内容.我只是不能正常工作.
我只需要朝着正确的方向努力,我做错了什么?我缺少什么,我该怎么做才能正确设置正投影?
PS我不知道是否需要它,但这些是三角形的坐标:
static const GLfloat g_triangle[] = {
-1.0f, 0.0f, 0.0f,
1.0f, 0.0f, 0.0f, …Run Code Online (Sandbox Code Playgroud) 当我想绘制一个对象时,一切都好,例如一个立方体.我为立方体创建顶点,我创建缓冲区,我创建MVP矩阵并将其发送到着色器,它工作得很好.
但是,当我想要绘制2个或更多个对象时,该怎么办,例如立方体和三角形?我认为三角形和立方体的视图和投影矩阵应该相同,我只需要不同的模型矩阵,对吧?这意味着我将有两个MVP?
//Example (using GLM):
glm::mat4 MVPC = Projection * View * ModelCube;
glm::mat4 MVPT = Projection * View * ModelTriangle;
Run Code Online (Sandbox Code Playgroud)
那我现在怎么办这两个呢?这是适用于立方体的顶点着色器
//vertex shader
#version 330 core
layout(location = 0) in vec3 verticesCube;
uniform mat4 MVPC;
void main(){
gl_Position = MVPC * vec4(verticesCube,1);
}
Run Code Online (Sandbox Code Playgroud)
我应该如何处理着色器中的MVPT(三角形),我尝试搞乱不同的东西,但我无法让它工作,我无法同时显示立方体和三角形.
我有一个很大的页面,有很多东西在继续.所以我有两个页面的2个Vue实例.如何将数据从一个Vue实例绑定到另一个?
这个例子应该显示我想要做的事情.(这不是那样的)
<div class="app1">...</div>
...
<div class="app2">{{app1.$data.msg}}</div>
Run Code Online (Sandbox Code Playgroud)
var app1 = new Vue({
el: '.app1',
data: {msg: "test"}
});
var app2 = new Vue({
el: '.app2'
});
Run Code Online (Sandbox Code Playgroud) 我想显示EMPLOYEES表中所有员工的姓名,他们正在从表中处理三个以上的项目PROJECT.
PROJECTS.PersonID是一个外键引用EMPLOYEES.ID:
SELECT NAME, ID
FROM EMPLOYEES
WHERE ID IN
(
SELECT PersonID, COUNT(*)
FROM PROJECTS
GROUP BY PersonID
HAVING COUNT(*) > 3
)
Run Code Online (Sandbox Code Playgroud)
我可以在子查询中同时拥有两者PersonID,COUNT(*)还是只能有一列?
我到达了可以剪切视频的部分
ffmpeg -i test.mp4 -filter_complex
'[0:v] trim=start=5:end=10,setpts=PTS-STARTPTS [cut]' -map [cut] output.mp4
Run Code Online (Sandbox Code Playgroud)
它可以成功修剪视频,但是会完全删除音频。我正在尝试链接几个不同的过滤器,所以我想保留相似的语法,以某种方式保留音频。
glsl ×2
opengl ×2
2d ×1
ffmpeg ×1
javascript ×1
orthographic ×1
shader ×1
sql ×1
video ×1
vue.js ×1