Mark, will there be Multitexturing?
BlitzMax Forums/BlitzMax Programming/Mark, will there be Multitexturing?
| ||
I’ve raised this issue occasionally before but there never seems to be many people interested or who understand what I’m talking about however I’m desperate to know the answer. Will there be multitexturig in Max3D? Specifically what I mean is say if you’re making a strategy game you don’t want to make a terrain look really tiled so you get two hi-res textures and then a much low-res alpha map and use this to blend between the two textures, giving a much better looking surface similar to what is done in Settlers V. Perhaps this can be achieved with pixelshaders which is why nobody else has asked but I really don’t know that much about shaders so I’m in the dark about it until I get my hands on Max3D. I’m not asking for when Max3D will be released I just wanna know if it will have the ability to do this. Otherwise I’m stuck using massive textures to make my strategy games and what not or have the entire thing looking tiled and very 1998. |
| ||
Most likely yes, for 3 reasons: 1. B3D already had it although restricted to 2 UV sets (and up to 8 texture layers) 2. It was mentioned as next gen engine. As even 3 year old engines use it, yes :) 3. Shaders need multitexturing normally for their effects ^^ |
| ||
well B3d doesn't really do it properly since it doesn't have the right blendmodes. But it can be done. I imagine Max3d will have similar blendmodes to Ogres fixed function materials in which case you have something like this: which is a single pass mask between 2 terrain textures with an alpha. More than 2 UV's is best for maximum flexibility. material Template/texture_blend { technique { pass { texture_unit { texture source.png } texture_unit { texture alpha_blend.png colour_op alpha_blend } texture_unit { texture dest.png colour_op_ex blend_current_alpha src_texture src_current } } } } which produces this: ![]() BTW, looks like fixed function pipeline blendmodes etc are being done away with in the next gen GL and DX10 and you will have to recreate them with shaders. Kind of a shame because blendmodes are a lot more intuitive than shaders for many things. And a lot less hastle to get working. |
| ||
You can do this in DX (and I assume OGL) driver already. If you have the DX7 SDK and/or mfctex utility ( or D3DMulTex and OGLMulTex) you can get the renderstage arguments to do single pass multi-texturing. |
| ||
Yeah, Evak that's exactly what I'm talking about. And yes you're right Blitz3D doesn't have the blend modes to do this properly. If you happen to want to blend two textures you can fake it with other blend modes as seen in a demo in the 'Mak' folder but that won't work with every combination of textures with certain colours since the blending is additive You can get around this with other ways and workarounds but that then leads to Z buffer problems if you have entities with lower than full alpha in front of your terrain. |
| ||
Have a look at Mark's recent worklogs for info on this stuff. He's just put a new one up, BTW. :o) |
| ||
I know, there's nothing there about this particular issue though so I decided to post. |
| ||
repeat: Even Blitz3D has multitexturing with up to 8 textures and 5 different blend modes. (that is multitexturing. Don't know what you see as multitexturing. Doing it in the way photoshop does is something different that might or might not work depending on what you used there as it has blending possibilities not supported by 3d cards) Shaders rely on multitexturing for their stuff, so yes it will be in as the recent worklog entry mentions that he is playing around with shaders and he mentions that Max3D will need a real graphic card to run (shader and 3d performance, not intel) |
| ||
Yes, there will be multitexturing. Without it, shaders would make no sense. Even if there isn't a 'terrain shader' included in Max3D doing the thing you want, it is straightforward to make one, which does exactly what you need it to do. |
| ||
Top stuff. |
| ||
OpenGL bases on extending not on replacing like DirectX. For that reason I would be interested to know how existing stuff should be "disappear" :) |