Texture Blend
BlitzMax Forums/MiniB3D Module/Texture Blend| 
 | ||
| Trying to make the top textures alpha areas show the bottom texture, seems to work in blitz3d but not with miniB3D.. Blitz3D 
; TextureBlend Example
; --------------------
Graphics3D 640,480
SetBuffer BackBuffer()
camera=CreateCamera()
; Choose a background colour which isn't the same colour as anything else, to  avoid confusion
CameraClsColor camera,255,0,0
light=CreateLight()
RotateEntity light,90,0,0
cube=CreateCube()
PositionEntity cube,0,0,5
; Load textures
tex0=LoadTexture( "pcolor.png",2 )
tex1=LoadTexture( "power1text.png",2 )
; Texture cube with textures
EntityTexture cube,tex0,0,0
EntityTexture cube,tex1,0,1
tex0_blend_info$="no texture"
tex1_blend_info$="no texture"
While Not KeyDown( 1 )
; Change texture 0 blending mode
If KeyHit( 11 )=True
tex0_blend=tex0_blend+1
If tex0_blend=4 Then tex0_blend=0
If tex0_blend=0 Then tex0_blend_info$="no texture"
If tex0_blend=1 Then tex0_blend_info$="no blend"
If tex0_blend=2 Then tex0_blend_info$="multiply"
If tex0_blend=3 Then tex0_blend_info$="add"
EndIf
; Change texture 1 blending mode
If KeyHit( 2 )=True
tex1_blend=tex1_blend+1
If tex1_blend=4 Then tex1_blend=0
If tex1_blend=0 Then tex1_blend_info$="no texture"
If tex1_blend=1 Then tex1_blend_info$="no blend"
If tex1_blend=2 Then tex1_blend_info$="multiply"
If tex1_blend=3 Then tex1_blend_info$="add"
EndIf
; Set texture blend modes
TextureBlend tex0,tex0_blend 
TextureBlend tex1,tex1_blend 
TurnEntity cube,0.1,0.1,0.1
RenderWorld
Text 0,0,"Press 0 to change texture 0's blending mode"
Text 0,20,"Press 1 to change texture 1's blending mode"
Text 0,40,"TextureBlend tex0,"+tex0_blend+" ("+tex0_blend_info$+")"
Text 0,60,"TextureBlend tex1,"+tex1_blend+" ("+tex1_blend_info$+")"
Flip
Wend
End 
miniB3D 
SuperStrict
Import MaxGUI.Drivers
Import "minib3d.bmx"
Graphics3D 800,600,32,2
Local camera:TCamera=CreateCamera()
CameraClsColor camera,255,0,0
Local light:TLight=CreateLight()
RotateEntity(light,90,0,0)
Local cube:TEntity=CreateCube()
PositionEntity cube,0,0,5
Local tex0:TTexture=LoadTexture("pcolor.png",2)
Local tex1:TTexture=LoadTexture("power1text.png",2)
EntityTexture cube,tex0,0,0
EntityTexture cube,tex1,0,1
TextureBlend tex0,1
TextureBlend tex1,1
Local tex_blend1:Int=1
Local tex_blend_info1:String
Local tex_blend2:Int=1
Local tex_blend_info2:String
While Not KeyDown(KEY_ESCAPE)
	If KeyHit(KEY_1)
		tex_blend1=tex_blend1 + 1
		If tex_blend1=4 Then tex_blend1=0
		If tex_blend1=0 Then tex_blend_info1="No texture"
		If tex_blend1=1 Then tex_blend_info1="No blend"
		If tex_blend1=2 Then tex_blend_info1="multiply"
		If tex_blend1=3 Then tex_blend_info1="add"
	EndIf
	
	If KeyHit(KEY_2)
		tex_blend2=tex_blend2 + 1
		If tex_blend2=4 Then tex_blend2=0
		If tex_blend2=0 Then tex_blend_info2="No texture"
		If tex_blend2=1 Then tex_blend_info2="No blend"
		If tex_blend2=2 Then tex_blend_info2="multiply"
		If tex_blend2=3 Then tex_blend_info2="add"
	EndIf
	
	TextureBlend tex0,tex_blend1
	TextureBlend tex1,tex_blend2
	
	TurnEntity cube,0.1,0.1,0.1
		
	UpdateWorld
	RenderWorld
	
	
	BeginMax2D()
		DrawText tex_blend_info1,0,0
		DrawText tex_blend_info2,0,12
	EndMax2D()
	
	
	
	Flip
	Cls
Wend 
In Blitz3D when textureblend is set to no blend for both textures I get the result I'm looking for...minib3d not so much any help is really appreciated! |