作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对OpenGL很陌生。我在玩一些代码,但我不明白为什么下面不会产生具有相同对象 View 的两个视口(viewport)。这是代码:
glViewport(0, windowHeight/2, windowWidth/2, windowHeight);
glScissor(0, windowHeight/2, windowWidth/2, windowHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective( 45.0, (GLfloat)(windowWidth/2)/(GLfloat)(windowHeight/2), 0.1f,
500.0 );
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
drawParticleView();
glViewport(windowWidth/2, 0, windowWidth, windowHeight/2);
glScissor(windowWidth/2, 0, windowWidth, windowHeight/2);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective( 45.0, (GLfloat)(windowWidth/2)/(GLfloat)(windowHeight/2), 0.1f,
500.0 );
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
drawParticleView();
drawParticleView()
只是绘制一个矩形数组。问题是第二个视口(viewport)是第一个视口(viewport)的压缩表示。我的窗口宽度是 1280,高度是 960。我显然做错了什么,但是什么?谢谢
最佳答案
glViewport 的参数是视口(viewport)的左下角为 x 和 y,然后是宽度和高度。
对于 100 像素正方形的窗口,您的两个视口(viewport)指定为:
x1 = 0,y1 = 50,width1 = 50,height1 = 100。
x2 = 50,y2 = 0,宽度2 = 100,高度2 = 50。
这些位置和大小将第一个视口(viewport)放在窗口的左上象限,一半悬在窗口顶部,第二个视口(viewport)放在窗口的左下象限,一半悬在窗口的侧面。
对于并排的视口(viewport),我认为您想要:
glViewport(0, 0, windowWidth/2, windowHeight);
// drawing code
glViewport(windowWidth/2, 0, windowWidth/2, windowHeight);
// repeat drawing code
glViewport(0, 0, windowWidth, windowHeight/2);
// drawing code
glViewport(0, windowHeight/2, windowWidth, windowHeight/2);
// repeat drawing code
(windowWidth/2)/windowHeight
对于上面的第一个选项,
windowWidth/(windowHeigh/2)
在上面的第二个选项中。
关于opengl - 为什么我不能在多个视口(viewport)中显示相同的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2433964/
我正在尝试获得一个按钮,按下该按钮时会改变颜色。当再次按下时,它应该变回原来的颜色。我究竟做错了什么? 我的模板中的按钮: export default { data: {
我是一名优秀的程序员,十分优秀!