Old Cube Mapping Bug

Archives Forums/Blitz3D Bug Reports/Old Cube Mapping Bug

Gabriel(Posted 2005) [#1]
Kinda hoped this had been fixed, but apparently not judging from a couple of emails I've received. Cube maps on any layer but layer zero seem to do odd things ( like making the object utterly invisible ) on a few videocards. I can't test this personally, so if anyone who ever had problems with invisible balls in either Kick Shot Pool or Anime Bowling Babes could test this that'd be great.

In keeping with the more focussed bug forum these days, please don't let's have a list of 100 "works fine here"'s. I know it works fine for a lot of people, it works fine for me too. It seems to have problems on some Intel's and some ATI radeons and mobility's.

You'll need a texture map and a cube map. Use your own or use mine :





Press 1 and 2 to move the cubemap between layers. In theory, it should look exactly the same regardless of which key you press. That's how it is for me. Anyone who gets weird behaviour, particularly the ball disappearing when you press 2, please indicate.



; CUBE MAP TEST 1 - SHOULD WORK ON ANY CARD WHICH SUPPORTS CUBE MAPS

Graphics3D 640,480,0
SetBuffer BackBuffer()


If GfxDriverCaps3D()<110

	EndGraphics
	RuntimeError "YOUR CARD IS REPORTING IT CANNOT DO CUBEMAPS. THIS IS NOT A BUG, IT IS DESIRED BEHAVIOUR"
	
Else
		
	Camera=CreateCamera()
	PositionEntity Camera,0,2,0
	Light=CreateLight()
	
	Ball=CreateSphere(16)
	PositionEntity Ball,0,0,4
	CubeTex=LoadTexture("cube.png",1+8+64)
	Tex=LoadTexture("ball.png",1+8+16+32)
	
	SetCubeMode CubeTex,1
	
	TextureBlend CubeTex,3
	TextureBlend Tex,1

	EntityTexture Ball,Tex,0,0	
	EntityTexture Ball,CubeTex,0,1

	Pivot=CreatePivot()
	PositionEntity Pivot,0,0,4
	EntityParent Camera,Pivot
	
	message$="STARTED"
	Color 255,255,255
	
	
	While KeyHit(1)=0
	
		If KeyHit(2)
			
			EntityTexture Ball,Tex,0,1
			EntityTexture Ball,CubeTex,0,0
			
			TextureBlend CubeTex,1
			TextureBlend Tex,3
			
			Message$="CUBE MAP ON LAYER 0"
			
		End If
		
		If KeyHit(3)
			
			EntityTexture Ball,Tex,0,0
			EntityTexture Ball,CubeTex,0,1
			
			TextureBlend CubeTex,3
			TextureBlend Tex,1
			
			Message$="CUBE MAP ON LAYER 1"
			
		End If

	
		TurnEntity Pivot,0,-1,0
		PointEntity Camera,Pivot
		
		UpdateWorld
		RenderWorld
		
		Text 0,0,Message$
		
		Flip
		
		
		
	Wend

End If



Mustang(Posted 2005) [#2]
works fine here... :)

No, really, I posted although you said not to becase I tried this on my laptop that has integrated graphics (Intel Extreme Graphics 2 for Mobile, 82852/82855 GM/GME Graphics Controller) and mobile Intel CPU. I was so sure that this code would bomb - but no, works fine here.


markcw(Posted 2006) [#3]
it's a bit late to reply to this post, but i tested your code and YES there is a problem on my ATI Radeon VE.

when i run the code first the cubemap texture is rotating with the ball, like a normal texture, which is wrong. then i press "1" and it works, the cubemap texture stays put and looks like a reflection. now when i press "2" i expect it to go back to the way it was at the start but it doesn't, it stays the same.

i have done some cubemap tests too on this card and both cubemaps and dot3 maps have had to be "underneath" to work, i assumed this is the proper way to do it, i didn't know it was to do with my video card.

i have no idea how cubemaps could make objects, or textures, invisible on some cards though.


GfK(Posted 2006) [#4]
Checks out OK on my Radeon 9600.

I'm quite sure that cube maps used to cause the 'disappearing' problem in 16-bit graphics modes on some GeForce MX cards, too.