How to paint textures in 3ds max?

Community Forums/Developer Stations/How to paint textures in 3ds max?

Gun Ecstasy(Posted 2011) [#1]
I'd really appreciate any help here.I'm using 3ds max 9 with the b3d pipeline for exporting. However, I can't figure out how to do vertex paint to blend multiple textures on the same object.

For example:



I tried using the "blend" as a material and it worked in the render, BUT I got an error when I tried to export it (Object has invalid material).

Please anyone? There's almost no tutorials on how to do vertex paint regularly, and I couldn't find any on how to do it for Blitz3D.

I even tried using gile[s]. But the "paint" tool seems to just lighten/darken the lightmap, not paint actual textures. And gile[s] 2 wouldn't even run for some reason.

Last edited 2011


chi(Posted 2011) [#2]
With 3ds max you can only use VertexPaint to achieve multitexturing for b3d... (see http://www.blitzbasic.com/Community/posts.php?topic=84977#962246 ). But itīs kind of slow because you need one mesh for each layer and youīll need to blend them with vertexalpha. Itīs ok for small maps, though.

The best way would be to use FastExt and blend the textures with an alphamap. Pro: fast, Con: restricted to only 4 textures ( +1 lightmap + 3 alphamaps = 8 textures ). Here is a little video of an application i made with b3d + fastext... http://www.youtube.com/watch?v=6b-YT8Rv4xw (hiatus;)

Or you could even switch to a dx9 engine (e.g. Xors3d) and do all the magical work with a shader. Probably the hardest method but also the best! Btw. Xors3d is also capable of doing the fastext texblend thingy...

cheers, chi


Gun Ecstasy(Posted 2011) [#3]
Thanks for the reply!!! Actually I am using Xors3d, I love it.

That thread appears to be only for using vertex paint to paint an alpha channel.
That's very useful, and I followed the steps and was able to achieve it.

I'm not really sure what you mean by using FastExt to blend the textures with an alphamap.
And I really have no idea how to use shaders yet with Xors3d.

However, I did get an idea from reading your post. I don't see why it wouldn't be possible
to create my map as normal, and for blended textures such as roads in the picture above,
I could create a new mesh and vertex paint the alpha onto it, so it would blend with
the texture below it. I'm guessing if I did that, I would also have to raise up the mesh a
fraction so I wouldn't get artifacting from both meshes being in the exact same place, but
if it works then it works.

But the video you posted is exactly what I am trying to do, except I'm trying to do
it in 3ds max. Is there no way to accomplish that in 3ds max with the b3d pipeline?


Gun Ecstasy(Posted 2011) [#4]
Okay using the method I just described, I was able to "basically" achieve the affect I want:



Note that the red/blue colors are actual .png textures, I just quickly made them for the sake of demonstration.
Although this is a very crude and dirty way of doing it, it seems to be literally my only way of achieving
blended textures, unless someone can help me out here.

But as I predicted, there is a problem. As I predicted, I have to separate the meshes by at least 1 full unit in order to avoid artifacting:



As you can see, there is a clear gap between the meshes upon close inspection. This may
not be a huge problem if I can hide it well enough, but is there really no way to have 2 textures on 1 mesh using just 3ds max and b3d pipeline?

Edit: I even trying scaling the model up, to test if it just needs to be 1 unit apart no matter how big it is. If the camera gets more than 3000 units away, artifacting starts again... so I can't just scale everything up to minimize the effect.

I'd really appreciate any help.

Last edited 2011


Kryzon(Posted 2011) [#5]
Edit: I even trying scaling the model up, to test if it just needs to be 1 unit apart no matter how big it is. If the camera gets more than 3000 units away, artifacting starts again... so I can't just scale everything up to minimize the effect.


Yeah, that's called Z-fighting or flimmering and it's due to the Z-Buffer having limited precision: once you get away from something, it's Z-Buffer representation isn't as accurate when up close, so surfaces that are very close to eachother may actually be understood as being in the same place.
You could fight that using Texture Splatting - you can do that with the FastExt libraries, but since you are using Xors3D, you can do there too.

http://blitzbasic.com/Community/posts.php?topic=89266#1013843


Gun Ecstasy(Posted 2011) [#6]
Thank you Kryzon.

I've spent so much time googling this (literally an entire day), I was running out of results to check.
I didn't know it was called Texture Splatting though, so now I have a new term to search for =D

I'll figure out how to do it code-wise, but I think the first step is to learn how to actually texture splat
from inside 3ds max. My only concern is making it compatible for .b3d exporting, because it
seems that B3d Pipeline only works with Blitz3D Brush material and Blitz3D Map. I've tried using
blend, mix, and composite materials and they all work when rendered, but simply wont export.
So I'll look up some tutorials on how to texture splat with 3ds max, and then figure out what
I need to do in the code to get it working.

Worst case, I suppose I could always separate parts of terrain that need blended textures, and then manually
blend them in photoshop, and finally UV map them (would be a pain in the ass, though).

I really didn't think it'd be so complex though. I remember way back in the day of modding C&C Renegade, I
would use Gmax and it had a custom material editor where I could blend textures just by simple vertex painting.

Thanks again guys =D


scribbla(Posted 2011) [#7]
i dont know how its done in 3d max but in modo its doable

this is how i do it
load mesh

2 uvs one for tiling (move out of uv space) & one for the alpha normal uv

texture layer 1: first tile texture (use tiling UV set 1),

layer 2 :alpha image 1 (set alphas to transparent color and use uv set 2
layer 3: tile 2 (use tile uv set)
layer 4: alpha 2 (use uv set 2),
layer 5: tile 3 ( set 1)
layer 6: alpha 3 (use uv set 2),
layer 7: tile 4 ( set 1)
layer 8: lightmap (use uv set 2)

by selecting the alpha images and painting ether black or white you can rub through

for blitz you will need the FastExt libraries,
also if you have issues with the mesh being transparent then heres the fix, way down at the bottom of the thread

http://www.blitzbasic.com/Community/posts.php?topic=89425


hope it helps and i hanvt just made things sound more complicated ;)

Last edited 2011


Gun Ecstasy(Posted 2011) [#8]
O_O

>_>

Thank you for explaining... perhaps someday I might know what you are talking about O_O

I've been awake for over 24 hours trying to figure out how to do this... I think I just have a lot to learn
about the more advanced topics of modelling 3D.

I might as well ask a couple questions though. What exactly is an alpha image, and how do I set it to transparent color?

Do map channels have anything to do with it?

How do I select the alpha image for painting either black or white?

Thanks again guys


scribbla(Posted 2011) [#9]
ive only just realised, i dont think 3ds max has paint tools (3d painting)

you may want to take a look at blender and the texture splatting video
http://vimeo.com/1146131

you could then use blender as a splatting editor

Last edited 2011

Last edited 2011


Gun Ecstasy(Posted 2011) [#10]
It has Vertex Paint modifier. I'm pretty sure it does the same thing as that, especially since I remember using it in Gmax (although it was a custom material editor, it still used vertex paint however).

That video makes it look simple enough. I suppose I just need to figure out how exactly to do it in code now.

Thanks for all your help guys. I'll try to learn the rest on my own but anymore input is appreciated =D