Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

03.05.2013, 15:44

OpenGL: Textur render Problem

Hi Leute :)

Hab da so ein Problem. Ich würde gern eine Textur auf einen einfachen Würfel rendern, nur kommt dabei nur das raus:

(Link)



Benutzen tue ich dieses Bild:


(Link)




Was mir aufgefallen ist, ist dass die Farbe des Würfels immer so eine Mischung aus den Farben des Bildes ist. Habe ich auch mit anderen Bildern getestet.
Da es ja ziemlich viel Code ist(mit den Shadern u.s.w.) würde ich euch bitten mir zu sagen, welchen Code ihr braucht um eine Diagnose aufzustellen.
Ich benutze OpenGL 4.0 mit freeGLUT und GLEW.

Mit freundlich Grüßen
RenX

rnlf

Frischling

Beiträge: 85

Beruf: Softwareingenieur Raumfahrt

  • Private Nachricht senden

2

03.05.2013, 16:00

Hast du Texturkoordinaten festgelegt?

3

03.05.2013, 16:07

Na Klar! Hier:


C-/C++-Quelltext

1
const Vertex VERTICES[8] =      {       //  VERTEX POSITIONS       // UV'S       { { -.5f, -.5f,  .5f, 1 }, { 0.0f, 0.0f} },     { { -.5f,  .5f,  .5f, 1 }, { 1.0f, 0.0f } },        { {  .5f,  .5f,  .5f, 1 }, { 1.0f, 1.0f } },        { {  .5f, -.5f,  .5f, 1 }, { 0.0f, 0.0f } },        { { -.5f, -.5f, -.5f, 1 }, { 1.0f, 0.0f } },        { { -.5f,  .5f, -.5f, 1 }, { 1.0f, 1.0f } },        { {  .5f,  .5f, -.5f, 1 }, { 0.0f, 0.0f } },        { {  .5f, -.5f, -.5f, 1 }, { 0.0f, 0.0f } }    };



Hab halt Vertexpositionen und UV's in einen Buffer gesteckt.

C-/C++-Quelltext

1
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(VERTICES[0]), (GLvoid*)0);   glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(VERTICES[0]), (GLvoid*)sizeof(VERTICES[0].Position));



Und hier dann einfach noch die beiden Shader.

Vertex:

C-/C++-Quelltext

1
2
3
4
5
#version 400
layout(location=0) in vec4 in_Position;layout(location=1) in vec2 UV;
uniform mat4 ModelMatrix;uniform mat4 ViewMatrix;uniform mat4 ProjectionMatrix;
out vec2 ex_UV;
void main(void){        gl_Position = (ProjectionMatrix * ViewMatrix * ModelMatrix) * in_Position;      ex_UV = UV;}



Fragment:

C-/C++-Quelltext

1
2
3
4
#version 400
in vec2 UV;out vec3 out_Color;
uniform sampler2D diffuseTexSampler;
void main(void){        out_Color = texture(diffuseTexSampler, UV).rgb ;}


EDIT: Warum setzt der alles in eine Zeile? -.-

rnlf

Frischling

Beiträge: 85

Beruf: Softwareingenieur Raumfahrt

  • Private Nachricht senden

4

03.05.2013, 16:19

Im Fragment-Shader hast du

HLSL-Quelltext

1
in vec2 UV;
,

im Vertex-Shader hast du

HLSL-Quelltext

1
out vec2 ex_UV;


Die sollten gleich heißen...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »rnlf« (03.05.2013, 16:24)


5

03.05.2013, 16:28

*-* Wie soll ich dir nur danken?!:D

Seit fast 5 Stunden sitz an dem scheiß, dabei war es nur so ein kleiner Fehler :D Typisch programmieren :D

Vielen, vielen, vielen und nochmal vielen dank :D

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

03.05.2013, 16:29

Gab es da beim Linken der Shader keine Warnung?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

rnlf

Frischling

Beiträge: 85

Beruf: Softwareingenieur Raumfahrt

  • Private Nachricht senden

7

03.05.2013, 19:58

Interessanterweise nicht. Bin da auch nicht voll im Bilde, aber sowas lässt sich problemlos linken. Wenn da jemand mehr weiß, würde ich das auch gerne erfahren...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

03.05.2013, 20:01

Deswegen hätte ich da auch mit einer Warnung gerechnet, aber nicht mit einem Error.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige

Ähnliche Themen