OpenGL Texturen



  • Schönen Abend,
    um Texturen in OpenGL besser zu verstehen habe ich ein eigenes Programm geschrieben welches eine Textur der Größe 2048x2048 erzeugt und diese einfarbig rot färbt. Diese soll von OpenGL geladen werden und als Textur auf einem Quadrat gezeichnet werden. Leider ist dieses Quadrat immer weiß absolut egal welchen Farbwert ich einstelle. Akzeptiert OpenGL vielleicht einfach ein anderes Farbformat oder woran hängt es bei dieser weißen Textur?
    Hier ist der Quellcode:

    int imageSize = 2048 * 2048 * 4;
    
    	m_pchTexData = new char[imageSize];
    
    	if (!m_pchTexData)
    		return false;
    
    	memset(m_pchTexData, 0xFF0000FF, imageSize);
    
    	_context->glActiveTexture(GL_TEXTURE0 + TexUnit);
    
    	glGenTextures(1, &m_uiTextureID);
    	glBindTexture(GL_TEXTURE_2D, m_uiTextureID);
    
    	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2048, 2048, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_pchTexData);
    
    	if (CreateMipMaps)
    	{
    		_context->glGenerateMipmap(GL_TEXTURE_2D);
    		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
    	}
    	else
    	{
    		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    	}
    
    	m_bLoaded = true;
    	if (HoldInSysMem)
    		return true;
    
    	delete[]m_pchTexData;
    	m_pchTexData = nullptr;
    	return true;
    

Anmelden zum Antworten