Texture flags from a b3d model
Blitz3D Forums/Blitz3D Programming/Texture flags from a b3d model
| ||
| Since I need to scale my b3d model textures according to detail level I choose when starting the game, I use a simple scaletexture function. I create then a brush with that scaled texture and paint my model. This function needs to know the textureflag to apply to the new scaled texture. How could I get texture flags from my b3d model or from a brush? I could use texturefilename strings, like "_alpha" , "_mip" etc..but it's a bit unhandy. Do you think there's a better way to scale the textures of b3d models? thanx
Function Scltexture(texhandle,xys#,tflags)
txwidth=TextureWidth(texhandle)
txheight=TextureHeight(texhandle)
id=CreateTexture(txwidth/xys,txheight/xys,tflags)
LockBuffer(TextureBuffer(texhandle))
LockBuffer(TextureBuffer(id))
While j<= TextureHeight(id)-1
i=0
While i<= TextureWidth(id)-1
argb=ReadPixelFast(i*xys,j*xys,TextureBuffer(texhandle))
WritePixelFast (i,j,argb,TextureBuffer(id))
i=i+1
Wend
j=j+1
Wend
UnlockBuffer(TextureBuffer(texhandle))
UnlockBuffer(TextureBuffer(id))
FreeTexture texhandle
Return id
End Function
|
| ||
| did you try GetEntityBrush or GetSurfaceBrush? |
| ||
| those commands return only the brush...I need to know the textureFlag that is: 1: Color (default) 2: Alpha 4: Masked 8: Mipmapped 16: Clamp U 32: Clamp V 64: Spherical environment map 128: Cubic environment map 256: Store texture in vram 512: Force the use of high color textures how could I retrieve these from a brush or a b3d model? |
| ||
| by writing a program to retrieve them using the info from here: http://blitzbasic.com/sdkspecs/sdkspecs/b3dfile_specs.txt Specifically, the TEXS chunk:
TEXS
{
char file[] ;texture file name
int flags,blend ;blitz3D TextureFLags and TextureBlend: default=1,2
float x_pos,y_pos ;x and y position of texture: default=0,0
float x_scale,y_scale ;x and y scale of texture: default=1,1
float rotation ;rotation of texture (in radians): default=0
} |
| ||
| thx...It's the only solution |
| ||
| not a problem... |
| ||
| Hi, I have some functions in one of my DLLs to get such info about textures & brushes, check it out here. www.tomspeed.com/memorylib/ Use with version Blitz3D 1.98 only! Place .DLL and .Decls into your Userlibs folder. Grab the samples to see functions working. Before trying, always BACKUP IMPORTANT WORK!!! :) Let me know how you get on with it. Tom |