我发现还有相当数量的驱动程序不支持NPOT纹理所以我试图改造我的2D引擎(基于OpenTK,而后者又基于OpenGL),而不是支持Texture2D依赖于GL_ARB_texture_rectangle.作为其中的一部分,我强制所有NPOTS纹理位图分配额外的空间,直到下一个2的幂大小,这样它们就不会在这些驱动程序上造成错误.我的问题是,我是否真的需要调整实际位图和纹理的大小并分配所有额外的内存,或者是否有办法告诉OpenGL我想要2次幂大小的纹理,但我只会使用左上角的一部分?
现在我的电话看起来像这样:
GL.TexImage2D(texTarget, 0, PixelInternalFormat.Rgba8, bmpUse.Width, bmpUse.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, bits.Scan0);
Run Code Online (Sandbox Code Playgroud)
这是在我使bmpUse成为我的真实纹理位图的副本后,在右侧和底部有额外的空间.
我是使用OpenGL的新手,正在尝试使用jogl.我能够毫无问题地绘制三角形,但是当我尝试绘制四边形(在许多教程中使用)时,eclipse一直告诉我GL.GL_QUADS无法解决.
gl.glBegin(GL.GL_QUADS);
Run Code Online (Sandbox Code Playgroud)
不知道我做错了什么.
谢谢,
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.*;
import javax.media.opengl.awt.GLCanvas;
import com.jogamp.opengl.util.*;
public class SimpleScene implements GLEventListener {
public static void main(String[] args) {
GLProfile glp = GLProfile.getDefault();
GLCapabilities caps = new GLCapabilities(glp);
GLCanvas canvas = new GLCanvas(caps);
final Frame frame = new Frame("AWT Window Test");
frame.setSize(300, 300);
frame.add(canvas);
frame.setVisible(true);
// by default, an AWT Frame doesn't do anything when you click
// the close button; this bit of code will terminate the program when
// …Run Code Online (Sandbox Code Playgroud) 好吧,所以在任何人问之前,是的我确实<gl/gl.h>包括在内.任何人都知道为什么这个功能glGetTexLevelParameter没有出现?
我正在尝试了解纹理钳制在OpenGL或任何其他API中如何工作。我知道一个事实,您将操作定义为将范围从[0,1]扩展到任何值,但将其限制在边缘。
所以,如果我有一个伪代码功能:
unsigned int clampedTexel(float u, float v)
{
if(u < 0) u = 0;
if(u >= width) u = width-1;
if(v < 0) v = 0;
if(v >= height) v = height-1;
return image[u][v];
}

(来源:www.cs.unc.edu上的sud)
对?所以,如果我超出范围,如u方向上的1.1,为什么不将其固定在末尾的黑色上?在此示例中,它不是黑色,而是白色。我误会了吗?为什么黑色旁边的值固定为白色?
或与边缘颜色交替的任何其他扩展名。请帮助我看看我要去哪里。
我2年前用过opengl.在一个下午,我读了一个tuto,我画了一个立方体(然后学会了如何加载任何3D模型)并学会回家用鼠标移动相机.这很简单,不到100行代码.我没有完全得到管道,但我能够做点什么.
现在我需要为一些基本的东西刷新opengl,基本上我需要加载3D模型(任何模型)并在固定相机的情况下移动模型.我认为会是另一个下午.
我花了一天时间没有任何工作.我正在阅读推荐的tuto http://www.arcsynthesis.org/gltut/我没有得到任何东西,现在只绘制一个立方体你需要很多行并使用大量的缓冲区,使用一些特殊的着色器语法.. ..我到底想要画一个立方体.在它定义6个方面之前.
opengl发生了什么?有些人认为现在很好,我认为这是搞砸了.是否有任何简单的图书馆可以使我的生活更轻松?
我正在寻找一种方法,能够知道自我的程序启动以来在任何给定时间已经有多少时间.一种计时器,在主代码执行其他操作时将继续运行,并且可以随时调用.
上下文是Windows上的OpenGL应用程序,并且知道正在按下哪些键盘键(使用glutKeyboardFunc),我想知道何时按下每个键.所有这些信息都写入一个XML文件,稍后将用于重放用户所做的一切.(有点像赛车游戏中的重播功能,但更简单).
正如您所看到的:http://i.stack.imgur.com/ztM0v.png,某些多边形只是呈现在其他多边形上.有没有人有任何建议或相关阅读以正确的顺序呈现这些,以便它们不重叠?
如果一个三角形(多边形)例如只覆盖其中一个,为什么四个片段的四个片段都将被着色(计算它们的颜色)?
我有一个包含三角形顶点的文本文件.我想在OpenGL窗口中绘制这个三角形; 但是,我对OpenGL很新,不知道从哪里开始.
任何人都可以指出我正确的方向或提供一个大致的概述,我可以如何开始这个问题?在此先感谢您的帮助.
OpenGL中是否有任何Ray球体交互代码.我真的需要了解该程序,所以我正在寻找它,但找不到它.这似乎是流行的问题,但我只能找到公式和基本原理而不是任何一个例子. http://wiki.cgsociety.org/index.php/Ray_Sphere_Intersection
我不知道该如何去做.这就是我得到的:http://www.sendspace.com/file/8gb6fj
你有没有人做过这件事,或者知道某些来源我可以获得该计划?