load hdr as cube map

Started by matan45, November 16, 2019, 12:54:57

Previous topic - Next topic

matan45

i am trying to load 360 hdr as cube map and i getting a black screen
here is the code
public int loadCubeMap2(String[] textureFiles) {
		int texID = GL11.glGenTextures();
		GL13.glActiveTexture(GL13.GL_TEXTURE0);
		GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, texID);
		TextureDatatemp data = decodeTextureFile2("res/newport_loft.hdr");
		for (int i = 0; i < 6; i++) {

			GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL30.GL_RGB16F, data.getWidth(),
					data.getHeight(), 0, GL11.GL_RGB, GL11.GL_FLOAT, data.getBuffer());
		}
		//GL30.glGenerateMipmap(GL13.GL_TEXTURE_CUBE_MAP);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_WRAP_S, GL12.GL_CLAMP_TO_EDGE);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_WRAP_T, GL12.GL_CLAMP_TO_EDGE);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL12.GL_TEXTURE_WRAP_R, GL12.GL_CLAMP_TO_EDGE);
		textures.add(texID);
		return texID;
	}
	
	private TextureDatatemp decodeTextureFile2(String fileName) {
		STBImage.stbi_set_flip_vertically_on_load(true);
		IntBuffer width = BufferUtils.createIntBuffer(1);
		IntBuffer height = BufferUtils.createIntBuffer(1);
		IntBuffer nrComponents = BufferUtils.createIntBuffer(1);
		FloatBuffer data = STBImage.stbi_loadf(fileName, width, height, nrComponents, 0);
		if (data == null) {
			throw new RuntimeException("Failed to load image: " + stbi_failure_reason());
		}
		
		return new TextureDatatemp(width.get(0), height.get(0),data);
	}

here is the result
what i am messing?

matan45

Quote from: matan45 on November 16, 2019, 12:54:57
i am trying to load 360 hdr as cube map and i getting a black screen
here is the code
public int loadCubeMap2(String[] textureFiles) {
		int texID = GL11.glGenTextures();
		GL13.glActiveTexture(GL13.GL_TEXTURE0);
		GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, texID);
		TextureDatatemp data = decodeTextureFile2("res/newport_loft.hdr");
		for (int i = 0; i < 6; i++) {

			GL11.glTexImage2D(GL13.GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL30.GL_RGB16F, data.getWidth(),
					data.getHeight(), 0, GL11.GL_RGB, GL11.GL_FLOAT, data.getBuffer());
		}
		//GL30.glGenerateMipmap(GL13.GL_TEXTURE_CUBE_MAP);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_WRAP_S, GL12.GL_CLAMP_TO_EDGE);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL11.GL_TEXTURE_WRAP_T, GL12.GL_CLAMP_TO_EDGE);
		GL11.glTexParameteri(GL13.GL_TEXTURE_CUBE_MAP, GL12.GL_TEXTURE_WRAP_R, GL12.GL_CLAMP_TO_EDGE);
		textures.add(texID);
		return texID;
	}
	
	private TextureDatatemp decodeTextureFile2(String fileName) {
		STBImage.stbi_set_flip_vertically_on_load(true);
		IntBuffer width = BufferUtils.createIntBuffer(1);
		IntBuffer height = BufferUtils.createIntBuffer(1);
		IntBuffer nrComponents = BufferUtils.createIntBuffer(1);
		FloatBuffer data = STBImage.stbi_loadf(fileName, width, height, nrComponents, 0);
		if (data == null) {
			throw new RuntimeException("Failed to load image: " + stbi_failure_reason());
		}
		
		return new TextureDatatemp(width.get(0), height.get(0),data);
	}

here is the result https://ibb.co/PF734h0
what i am messing?