2D Textur auf dem Display 2x so groß wie angeben?

Friedhelm

Bekanntes Mitglied
Ich habe 2D Boxen auf dem Screen die 16x16 Pixel gross sind, mit einer 16x16 Textur.

Jedoch wird die Textur mit 32x32 Pixeln angezeigt, wie kommt das?


Edit: Der angehängte Screenshot ist 1920x1080, aber irgendwie verkleinert der Forum-Image-Importer das Bild auf 1024x576

Java:
createWindow(1920, 1080, true);



private void createWindow(int screenWidth, int screenHeight, boolean fullscreen) throws Exception {

		Display.setFullscreen(fullscreen);

		try	{

			DisplayMode dm[] = org.lwjgl.util.Display.getAvailableDisplayModes(320, 240, -1, -1, -1, -1, 60, 85);
			printDisplayModes(dm);

			org.lwjgl.util.Display.setDisplayMode(dm, new String[] { "width=" + screenWidth, "height=" + screenHeight, "freq=60", "bpp=" + Display.getDisplayMode().getBitsPerPixel()	});
		}
		catch(Exception e) {

			Sys.alert("Error", "Could not start full screen, switching to windowed mode");
			Display.setDisplayMode(new DisplayMode(screenWidth, screenHeight));
		}          

		Display.create();
	}



private void initGL() {

		//GL11.glPushAttrib(GL11.GL_ENABLE_BIT|GL11.GL_TRANSFORM_BIT|GL11.GL_HINT_BIT|GL11.GL_COLOR_BUFFER_BIT|GL11.GL_SCISSOR_BIT|GL11.GL_LINE_BIT|GL11.GL_TEXTURE_BIT);
		GL11.glMatrixMode(GL11.GL_PROJECTION); // Select The Projection Matrix
		GL11.glPushMatrix();
		GL11.glLoadIdentity(); 

		GL11.glViewport(0, 0, Screen.screenWidth, Screen.screenHeight);		
		GL11.glOrtho(-virtualGameScreenWidth/2, virtualGameScreenWidth/2, -virtualGameScreenHeight/2, virtualGameScreenHeight/2, -1, 1);		

		GL11.glMatrixMode(GL11.GL_MODELVIEW); 
		GL11.glPushMatrix();
		GL11.glLoadIdentity();     
		GL11.glEnable(GL11.GL_TEXTURE_2D); // Enable Texture Mapping
		GL11.glEnable(GL11.GL_BLEND);
		GL11.glEnable(GL11.GL_LINE_SMOOTH);
		GL11.glDisable(GL11.GL_DEPTH_TEST); 
		GL11.glDisable(GL11.GL_LIGHTING);
		GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA);
		//GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST);

		//GL11.glDepthMask(false); 

		GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Black Background

		textureLoader = new TextureLoader();	
	}




protected void draw() {

		if(!spawned || !visible) return;


		GL11.glPushMatrix();
		GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureIDPool.get(useTexturePoolFrame));

		
		GL11.glTranslatef(position.x,position.y,position.z); 
		
		
		// * Nur wenn das Objekt "rotiert", dann die Grafikkarte mit diesem Befehl belasten! *
		if(angle_old.x != angle.x) GL11.glRotatef(angle.x,1f,0f,0f);
		if(angle_old.y != angle.y) GL11.glRotatef(angle.y,0f,1f,0f);
		if(angle_old.z != angle.z) GL11.glRotatef(angle.z,0f,0f,1f);
		
		
		
protected float textureUp = 1;
	protected float textureDown = 0;
	protected float textureLeft = 0;
	protected float textureRight = 1;

boxZoom = 1.0f;

		GL11.glBegin(GL11.GL_QUADS);
		{
			GL11.glTexCoord2f(textureRight,textureUp); 
			GL11.glVertex2f(boxWidth*boxZoom, -boxHeight *boxZoom);

			GL11.glTexCoord2f(textureLeft,textureUp); 	
			GL11.glVertex2f(-boxWidth*boxZoom, -boxHeight *boxZoom);        

			GL11.glTexCoord2f(textureLeft,textureDown); 
			GL11.glVertex2f(-boxWidth*boxZoom,boxHeight*boxZoom);

			GL11.glTexCoord2f(textureRight,textureDown); 
			GL11.glVertex2f(boxWidth*boxZoom,boxHeight*boxZoom);

		}
		GL11.glEnd(); 

		GL11.glPopMatrix();
	}



Wenn ich die Box um die Haelfte verkleinere stimmt dann zwar die Groesse, aber die Textur ist immer noch pixlig (Screen2.jpg) . Irgendwie stimmt da was nicht

Java:
GL11.glBegin(GL11.GL_QUADS);
		{
			GL11.glTexCoord2f(textureRight,textureUp); 
			GL11.glVertex2f(boxWidth/2*boxZoom, -boxHeight/2 *boxZoom);

			GL11.glTexCoord2f(textureLeft,textureUp); 	
			GL11.glVertex2f(-boxWidth/2*boxZoom, -boxHeight/2 *boxZoom);        

			GL11.glTexCoord2f(textureLeft,textureDown); 
			GL11.glVertex2f(-boxWidth/2*boxZoom,boxHeight/2*boxZoom);

			GL11.glTexCoord2f(textureRight,textureDown); 
			GL11.glVertex2f(boxWidth/2*boxZoom,boxHeight/2*boxZoom);

		}
		GL11.glEnd();

Wegen dem Box pixlig... kann es sein das OpenGL eine MindestTexturGröße von 32x32 Pixel benötigt?


Erst wenn ich das hier mache (siehe Code und Screen3.jpg), dann sieht alles ok aus... nur da hab ich soviel umgebogen (halbiert und gezoomed), sowie eine 32x32 Textur genommen, dass da nix mehr orginal ist, so wie es OpenGL eigentlich von sich aus darstellen sollte.

Java:
boxZoom = 0.5f;
		
		GL11.glBegin(GL11.GL_QUADS);
		{
			GL11.glTexCoord2f(textureRight,textureUp); 
			GL11.glVertex2f(boxWidth/2*boxZoom, -boxHeight/2 *boxZoom);

			GL11.glTexCoord2f(textureLeft,textureUp); 	
			GL11.glVertex2f(-boxWidth/2*boxZoom, -boxHeight/2 *boxZoom);        

			GL11.glTexCoord2f(textureLeft,textureDown); 
			GL11.glVertex2f(-boxWidth/2*boxZoom,boxHeight/2*boxZoom);

			GL11.glTexCoord2f(textureRight,textureDown); 
			GL11.glVertex2f(boxWidth/2*boxZoom,boxHeight/2*boxZoom);

		}
		GL11.glEnd();
 
Zuletzt bearbeitet:

Friedhelm

Bekanntes Mitglied
Also das pixlige Problem habe ich gelößt, es war ein Gaussfilter und andere Image-Filter die ich angewendet hatte.

Den Code habe ich nochmals umgeändert... aber das mit der Boxgröße stimmt immer noch nicht (ist immer noch 2x so gross wie angegeben, also 32 anstatt den originalen 16) :bahnhof:

Ich muss als immer noch Größe/2 oder Zoom 0.5f verwenden. Ist das immer so das openGL alles 2x so groß anzeigt und man dann um die Hälfte reduzieren muss?
 
Zuletzt bearbeitet:

EgonOlsen

Bekanntes Mitglied
Naja, deine Koordinaten gehen immer von -boxWidth/-boxHeight bis +boxWidth/+boxHeight. Ergo: Deine Boxen sind 2*boxWidth breit und 2*boxHeight hoch. Vielleicht ist das der Fehler?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Quadrat Textur lädt als Dreieck Spiele- und Multimedia-Programmierung 3
L Textur färben Spiele- und Multimedia-Programmierung 1
T [LWJGL] Textur / File wieder freigeben Spiele- und Multimedia-Programmierung 4
S [LWJGL] Zweimal selbe Textur trotz unterschiedlicher IDs Spiele- und Multimedia-Programmierung 3
R LWJGL: Textur -> unsichtbare Stellen, wie erzeugen? Spiele- und Multimedia-Programmierung 4
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
Creylon [LWJGL] Textur wird falsch angezeigt Spiele- und Multimedia-Programmierung 12
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
S OpenGL Textur unsauber Spiele- und Multimedia-Programmierung 2
R OpenGL Textur mit verschiedenen bit depths Spiele- und Multimedia-Programmierung 6
A OpenGL Textur und nicht Textur Spiele- und Multimedia-Programmierung 2
T JMonkey Textur nicht ganz angezeigt Spiele- und Multimedia-Programmierung 3
X JOGL - Textur auf Quad verzerrt Spiele- und Multimedia-Programmierung 2
M Wavefront Object Loader zeigt nur eine Textur an. Spiele- und Multimedia-Programmierung 7
P Java3D Textur verzerrt Spiele- und Multimedia-Programmierung 3
F Kleine GL Texturen auf grosse GL Textur kopieren? Spiele- und Multimedia-Programmierung 24
D Jogl:Textur auf GLUquadric wird vertikal spiegelverkehrt dargestellt Spiele- und Multimedia-Programmierung 2
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
radiac Stringtext mit BufferedImage Textur. Spiele- und Multimedia-Programmierung 6
E JPCT textur problem Spiele- und Multimedia-Programmierung 8
D Java3D Textur Problem Spiele- und Multimedia-Programmierung 9
G Textur in Java3D Spiele- und Multimedia-Programmierung 3
S KameraBild als Textur? Spiele- und Multimedia-Programmierung 4
E Textur-Problem Spiele- und Multimedia-Programmierung 2
A "Textur-Achse" drehen. Spiele- und Multimedia-Programmierung 2
G Textur auf Box jede Sekunde erneuern Spiele- und Multimedia-Programmierung 2
S Zylinder mit Textur erzeugt out of memory :( Spiele- und Multimedia-Programmierung 3
G Textur laden auf ein eingelesenes 3D Objekt Spiele- und Multimedia-Programmierung 4
M Problem mit Textur Spiele- und Multimedia-Programmierung 4
J Java3D: Textur kacheln? Spiele- und Multimedia-Programmierung 2
D TextureLoader - Textur von Url laden Spiele- und Multimedia-Programmierung 2
S Bump Mapping (Relief-Textur) in Java3D Spiele- und Multimedia-Programmierung 3
N Textur - Koordinaten Spiele- und Multimedia-Programmierung 2
S Generisches Keep Display On Spiele- und Multimedia-Programmierung 11
B LWJGL Display.update() ist langsam Spiele- und Multimedia-Programmierung 5
F Wie mache ich einen Screenshot vom Display (LWJGL)? Spiele- und Multimedia-Programmierung 7
W JOGL bleibt nach display() in PaintArea.paintComponent hängen Spiele- und Multimedia-Programmierung 5
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14

Ähnliche Java Themen


Oben