[TUTORIAL] custom Waterfalls (sawmill style) w/o modeling

Discussion in 'Tutorials & Resources' started by fubarFX, May 23, 2010.

  1. fubarFX

    aa fubarFX The "raw" in "nodraw"

    Messages:
    1,629
    Positive Ratings:
    1,715
    OL' FASHIONED SAWMILL
    WATERFALLS
    WITHOUT MODELING!

    Many mappers have been asking me how I make waterfalls, well folks! this is it. I'm about to unleash valve's best kept secret!

    WARNING! altho this tutorial doesn't involve carving, it is full of heresies such as:
    -applying water textures to vertical planes
    -using model textures
    -using displacement on water brushes
    you've been warned! lets begin without delays!

    note: you can actually skip the first 2/3 of this tut without missing important information.

    the grand journey

    Alright, first, lets take a look at the waterfall in sawmill.

    [​IMG]

    So basicly, it's only a model with some info_particle_systems. no sweat.
    particle systems are:
    -"waterfall_rocksplash"
    -"waterfall_bottomwaves"
    -"waterfall_mist"
    -"waterfall_sides"
    soundscape is:
    -"Sawmill.Waterfall"
    model is:
    -"props_forest/waterfall001.mdl"

    Particle systems and soundscape will pretty much fit any waterfall so these are no big deal.
    shaping the waterfall into our own will probalby be trickier tho. Lets see what the model's made of first.

    gcf extracting time!
    got my mdl in hands, lets decompile this shit
    decompiling time!
    alright got my decompiled model. I pretty know what the model looks like so lets skip this and take a look at the .qc file.
    Wait what! This model uses 2 texture at the same time! Here I ain't talking about 2 skins, 2 textures at the same time... must be some crazy UV mapped shit, how do you UV map a scrolling texture anyways? Lets take a look at these!

    I'd go check at these textures in hammer's texture browser but valve blacklisted model texture because some noob didn't knew how to use them...

    Gcf extracting time then!

    [​IMG]

    Now what's this... Two vmt and a single vtf, I guess the model uses only one texture after all eh?
    Ok, nuff messsing around, lets open this .vtf in photoshop.

    [​IMG]

    wtf! this isn't UV mapped at all! this thing shouldn't have been a model in the first place! damn valve must have made the waterfall a model to hide this awsomesauce in the blacklisted model directory.
    Ah w/e lets drop these vmt in my material folder and see what they look like inside hammer.

    [​IMG]

    ok, so we have one translucent version and an opaque one. well these are definetly 2 texture we could use so lets clean those vmt first

    THE CLEANSING

    waterfall001.vmt
    Code:
    "UnlitGeneric"
    // the unlitgeneric shader is usualy for models. so you should be changing this to LightmappedGeneric but I prefer the fullbright look of unlitgeneric. plus you save on lightmap data.
    {
    	"$baseTexture" "models\props_forest/waterfall001"
    	//lets keep this as it is so we won't need to include an other version of the vtf.
    	"$surfaceprop"	"default"
    	//default translates to concrete in tf2. which makes nasty bullet holes in your waterfall. so we're gonna switch this to "no_decal" to make sure it won't happen
    	"$translucent" 1
    	//ok so this is the translucent version. good!
    	"$model" "1"
    	// not anymore I'm afraid. scrap this
    	"$nocull" "1"
    	//nocull? interesting. I'll come back on this later.
    	"Proxies"
    	{
    		"TextureScroll"
    		{
    			"texturescrollvar" "$basetexturetransform"
    			"texturescrollrate" -.34
    			"texturescrollangle" 90
    		}
    	}
    	//this proxie is what makes the texture scroll, editing texturescrollrate will affect the speed of the scroll. other than that leave it as it is. 
    }
    lets check out the solid version now

    waterfall001_solid.vmt
    Code:
    "UnlitGeneric"
    {
    	"$baseTexture" "models\props_forest/waterfall001"
    	//same here, keep this.
    	"$surfaceprop"	"default"
    	//same here, switch to "no_decal"
    	"$model" "1"
    	//remove this too
    //	"$translucent" "1"
    	//for some reasons, valve only commented out this parameter. so the texture is opaque. you might as well remove this line completely to make your filesize lower.
    	"Proxies"
    	{
    		"TextureScroll"
    		{
    			"texturescrollvar" "$basetexturetransform"
    			"texturescrollrate" -.23
    			"texturescrollangle" 100
    		}
    	}
    	//oh look! a variation in the proxie? I'll come back to this later.
    }
    
    THE PRODUCT
    The cleaned up product should be something like this:

    waterfall001.vmt
    Code:
    "UnlitGeneric"
    {
    	"$baseTexture" "models\props_forest/waterfall001"
    	"$surfaceprop"	"no_decal"
    	"$translucent" 1
    	"$nocull" "1"
    	"Proxies"
    	{
    		"TextureScroll"
    		{
    			"texturescrollvar" "$basetexturetransform"
    			"texturescrollrate" -.34
    			"texturescrollangle" 90
    		}
    	}
    }
    
    waterfall001_solid.vmt
    Code:
    "UnlitGeneric"
    {
    	"$baseTexture" "models\props_forest/waterfall001"
    	"$surfaceprop"	"no_decal"
    	"Proxies"
    	{
    		"TextureScroll"
    		{
    			"texturescrollvar" "$basetexturetransform"
    			"texturescrollrate" -.23
    			"texturescrollangle" 100
    		}
    	}
    }
    
    Sweet, now we have our textures ready.
    >>>download<<<

    [​IMG]

    Lets get to work!

    working with the textures!
    How you use these textures is up to you really but I'll share with ya'll some random observations of mine.

    •As mentionned before, we have 2 textures to work with. one is translucent, the other is solid. the trick is to use them both, the translucent one above the solid one. doing this will give a nice depth to your waterfall.

    [​IMG]

    •When applying the textures. don't use the same scale on the Y and X axis. It just doesn't look right. I usualy use a X value twice higher than my Y value (ex; x:2,Y:1)
    •Scale will affect the speed of the water. (because the time it takes to the texture to go from top to bottom is invarible) if the scale distances the top and bottom, the texture will scroll at a higher speed.
    •It is best to use texture shift wisely when applying 2 layer of the water texture. failing to do so might result in an akward repetition in the pattern of the vtf. (the variations in the proxies are there to avoid this effect but it won't be enough in some cases) using different scales is also a viable way to prevent this from happening but it will affect the visual/speed.
    •I figured the best option is to use these textures on displacements. cylenders will look alright too but It really is a pain in the ass to align the texture on each faces.
    to make a cylender out of displacements, refer to this tutorial
    •Be carefull when makin displacement. Distorted scrolling textures look very bad.
    •The texture will scroll down by default on vertical planes but watch out when on horizontal planes, it's kinda tricky to tell which way the texture will be scrollin from hammer. I suggest identifing a pattern in the texture so you don't have to compile everytime you want to see which way it's going

    waterfalls and the tf2 gameplay
    The only official waterfall in tf2 is solid (player clipped) and is placed in an area that will pretty much never disturb skirmishes. I strongly recommend using waterfalls only in non-gameplay areas.
    from past experiences, I can tell you that using waterfalls in gameplay areas is a very bad idea. If you make a waterfall solid, player will go: "wtf solid water?" and if your water has no colision, some player will say "I kinda wish the waterfall was solid" (because they're getting shot at through the waterfall that fails to provide cover even tho the material is opaque).
    This confusion interfere with the map's immersion and should be avoided at all cost imo.

    I'll be adding more to this tutorial later on. Stay tuned for more!
    Any advices to improve this tutorial are welcome
     
    • Thanks Thanks x 28
    Last edited: May 31, 2010
  2. DaBeatzProject

    aa DaBeatzProject

    Messages:
    1,276
    Positive Ratings:
    1,091
    Nice! I'll need this in the future.

    Edit: It's also useful to use the nice waterfall particles with these textures for an even better result!
     
    Last edited: May 23, 2010
  3. Grim Tuesday

    aa Grim Tuesday

    Messages:
    1,257
    Positive Ratings:
    371
    Oh my god I have been meaning to ask you this.

    THANKYOUTHANKYOUTHANKYOU!
     
  4. Acumen

    aa Acumen Annoyer

    Messages:
    704
    Positive Ratings:
    594
    the model is a model because it uses delicate geometry that you can't create with brushes. just have a look at it :) it's 890 absolutely lovely placed triangles for a beautiful waterfall in a map.
    and of course the model is uvmapped. how could it use the waterfall-texture otherwise :)
    i'd say you're making waterfalls the hl1-way and valve the orangebox-way.

    i mean for someone who doesn't know how to model to create his own waterfall model this sure is good way of roughing something out before a modeler can take over.

    but in no way you needed to write such a (cocky) article as if valve didn't know what they were doing with this waterfall :)
    i mean, again, the model waterfall clearly looks better than any brushwork could ever look - simply because of the amount of polygons you can put into detailling it. period :)
     
    • Thanks Thanks x 1
  5. Freyja

    aa Freyja ¯\_(ツ)_/¯

    Messages:
    2,877
    Positive Ratings:
    4,944
    Thanks for this, but I've been doing this for half a year now :p

    I also say 3:1 Y:X is a better ratio, from my experience.

    Also folks, make sure if you make it onto a displacement, make the displacement power 2. You won't need the detail, so you can afford to make the entire thing one or two power 2 displacements.
     
  6. fubarFX

    aa fubarFX The "raw" in "nodraw"

    Messages:
    1,629
    Positive Ratings:
    1,715
    @acumen
    It sure does look like shit in those pictures since I'm using the texture on rectangular brushes. but I'm fairly sure anyone here can work out a displacement that will be looking equaly good as the model.
    to me It just seemed the texture was a lot more useful as a normal texture than a model texture. I don't question valve's professionalism. I'm just sayin, they could have made it a bit more community friendly.
     
    • Thanks Thanks x 1
  7. The Political Gamer

    aa The Political Gamer

    Messages:
    4,468
    Positive Ratings:
    1,684
    Your images are busted. :S Use dropbox man.
     
  8. Pocket

    aa Pocket func_croc

    Messages:
    4,489
    Positive Ratings:
    2,219
    What is it with Photobucket just randomly deleting everything after the first week or so, anyway?
     
  9. Grim Tuesday

    aa Grim Tuesday

    Messages:
    1,257
    Positive Ratings:
    371
    I hate photobucket.
     
  10. grazr

    aa grazr Old Man Mutant Ninja Turtle

    Messages:
    5,436
    Positive Ratings:
    3,570
    I've never had a problem with PB :/.

    Fix yer pics pl0x.
     
  11. fubarFX

    aa fubarFX The "raw" in "nodraw"

    Messages:
    1,629
    Positive Ratings:
    1,715