Jump to content

Steep Maps, Tri-Planar Blending & Splat Mapping - The quest to blend #2


Recommended Posts

As an extension of the old steep map system, Warzone now also does tri-planar blending and splat mapping.
 
 
Previously you could add (<texturename>_steep) high angles texture, and (<texturename>_steep2) water edge textures and have the game do the blending for you.
 
 
I have now extended the system so that you can also add up to 3 (at the moment) splat textures (<texturename>_splat1, <texturename>_splat2,<texturename>_splat3). If you would like to, then you can also add a (<texturename>_splat) image to control where on the map to blend each texture. If the _splat image is not added, it will use a default splat control map to select the positions that should work fine with any map anyway.

 

The Tri-Planar blending and splat mapping systems make sure textures vary across your maps instead of seeing obvious repetition of the same texture... and it is as simple as adding a few extra textures to the same directory as the original.
 
 
This is a map I put together in about 15 minutes to test the system.
 
The ground surfaces on this map use a single default shader (in this case "textures/yavin/ground").

All the other textures and blending between them are done by the new system using the following automatically based on the default splat control image.


"textures/yavin/ground_steep" (cliffs - rock)
"textures/yavin/ground_steep2" (water edges - sand)
"textures/yavin/ground_splat1" (first random blend texture)
"textures/yavin/ground_splat2" (second random blend texture)

"textures/yavin/ground_splat3" (third random blend texture)

 
The grasses were added to the map automatically by the warzone foliage system.
The trees were added to the map automatically by the warzone tree system after taking 20 seconds to run a command "/genfoliage" in-game to add trees).

Complete AI support was added to the map by taking about 2 minutes to auto-generate map waypoints using /awp (auto waypoint) and /awc (auto waypoint cleaner) commands.

Spawnpoints were automatically generated for each faction when loading the map after running the /awp command (only runs if you do not manually add enough spawnpoints).
 
 
Hopefully that explains it all, here are some screenshots.
 
 
IztCDm5.jpg
Jk3YUv4.jpg
tv2byou.jpg
1cSIi8E.jpg
y1gyexP.jpg
PLxDvP8.jpg

hgZK8pa.jpg
jGKYrCX.jpg
ckZWOXT.jpg

Link to comment

@@UniqueOne - Great job! Now find a real good panoramic photo and try to duplicate it.

 

The first thing to understand here is I am not a mapper or a modeler. For the life of me I can't work out radiant and blender. Never seen such horrible, unintuitive, user interfaces on any software I have ever used.

 

My test maps are just terrains generated using this software (with 1024 size triangles *sigh* due to crappy bsp limitations), after which I use notepad to add a water level and skybox. Would not have a clue how to do any of it in that horrible radiant software.

 

The bsp map format and q3map2 pretty much make that impossible to create with any level of detail. Maybe we could do that level of detail on a map the size of a few rocks :)

 

I guess it would be possible for a real modeler and mapper to create rock objects as md3 files and add those for detail (or possibly I could use geometry shaders to procedurally generate rocks), but it is a half-a@* solution that a mapper would have no idea of how it will look until it is running in game.

 

BSP and q3map2 need to die (also badly need alternatives to md3 and glm). These are the main things holding back JKA from being a modern looking engine. Unfortunately, these systems are beyond my levels of experience to replace, but I am still hoping that in time someone with the skills will finally realise it needs to be done and give JKA a chance to become what it could be.

 

In the meantime, at least we have blending systems now that this (hopefully) future stuff can also use.

 

As for the textures, I use what I have. I am a coder and am not getting much help here (well, honestly, almost no help currently). Although I think the issue is more with the stupid large surfaces forced on me by the above systems.

eezstreet and Onysfx like this
Link to comment

can your system do normal maps or displacement maps on terrain/ground surfaces?

 

Also, I thought Radiant could use .ase and .obj models?

The system will use normal maps for parallax and lighting. I have been working on tessellation using displacement maps, but there are other issues doing that, like cracks on large surfaces and generally tessellation is pretty slow. Anyway the code is there, just needs to be enabled if I start working with people wanting to use it. Maybe some specific use of tessellation in only particular cases is an option.

 

Radiant can use ase and obj models but I am pretty sure they are added to the map's surfaces count, meaning it won't help :( They can also be added as map objects I think by the game, but the issue there is they will not be solid.

 

Sadly, the only real option is to replace BSP (or add an alternative) with something new, without the 20 year old limitations. BSP (and water a while back) is the bane of my existance.

Link to comment

can you simulate small rocks using the same technique for your flowers?

 

flowers are just 2d images, not models  :D

 

yes, that is what I meant-- for small rocks.

 

It is possible, but we would still have the map size vs resolution issues on everything without rocks.

Link to comment

It is possible, but we would still have the map size vs resolution issues on everything without rocks.

I thought terrain textures could be 2048x2048, no?

 

Maybe in a 3D modeling package with a much larger terrain size... render out the terrain texture maps as 2048x2048 tiles and then lay them back out stitched together in the game?

 

for fun check out http://www.dxstudio.com (it's free)

Link to comment

So have you thought about what kind of map format you want to use? This is supposed to be an MMO mod, yes?

 

Yeah, that is the long term goal. Short term think something like JKA Skyrim. :)

 

I am undecided on what format is the best - I know anything would be better then BSP.

 

My basic thoughts are to use a format with freely available editors designed for other engines, but really this is something that should be decided on by mappers. I believe that whatever is chosen should make it easy for people to create content, but should also allow for more advanced designs as well.

 

(random thought) - I wonder if this could even be done by emulating something like ogre's map loading API?

 

I would love to see some comments/ideas here from mappers. What would they like? What do they think would make it easy for new modders to join the commuity?

I thought terrain textures could be 2048x2048, no?

 

Maybe in a 3D modeling package with a much larger terrain size... render out the terrain texture maps as 2048x2048 tiles and then lay them back out stitched together in the game?

 

for fun check out http://www.dxstudio.com (it's free)

 

The issue is not really the texture size/quality. It is the number of total triangles that the map itself can have. Drawing a high resolution texture over a large triangle still looks crap.

 

Interesting. That is like a full on map editor as well as terrain generator? Like unity editor sort of thing for other games to use?

Edited by UniqueOne
Link to comment
My basic thoughts are to use a format with freely available editors designed for other engines, but really this is something that should be decided on by mappers. I believe that whatever is chosen should make it easy for people to create content, but should also allow for more advanced designs as well.

I thought of something like using Unity for making the maps and export them in any format you "want" to implement, as you can script the export of the map. Here is something that does the opposite with id3 maps: https://github.com/mikezila/uQuake3

The nice thing about it is that you can make lightmaps like in radiant (maybe another format or algorithm though) which is nice for interior light. There was a homebrew 3d engine for wii which used unity to make the maps and export them for the engine. The source code for the complete engine + unity exporter was available. (I can search that for you if you are interested) Another nice thing would be that one could automate the material creation (shaders) + automate the copying of the texture files for JKA, but thats just some fantasy of mine. :D

 

Oh and btw. very good progress. I love to see updates here. :)

Link to comment

I thought of something like using Unity for making the maps and export them in any format you "want" to implement, as you can script the export of the map. Here is something that does the opposite with id3 maps: https://github.com/mikezila/uQuake3

The nice thing about it is that you can make lightmaps like in radiant (maybe another format or algorithm though) which is nice for interior light. There was a homebrew 3d engine for wii which used unity to make the maps and export them for the engine. The source code for the complete engine + unity exporter was available. (I can search that for you if you are interested) Another nice thing would be that one could automate the material creation (shaders) + automate the copying of the texture files for JKA, but thats just some fantasy of mine. :D

 

Oh and btw. very good progress. I love to see updates here. :)

 

Wow. Great catch there man. I can see some massive advantages in using unity editor. Not only is it a very nice editor from what I hear, but it also has a hell of a lot of users that are familiar with the editor. It could well help bring in a lot of new modders to/back-to JKA.

 

If you could find the link for that site, might be nice to have it recorded here. :)

SomaZ and Stoiss like this
Link to comment

@@UniqueOne -- perhaps you can make use of this automatic alpha blending for terrain maps (quake based)

 

https://github.com/paulvortex/BloodMap

 

This is going to be very useful. Nice find!

 

Will need to look into their alpha maps stuff and see if it is useful, but I have been looking for a nice standalone codebase for the 64bit q3map2 for a while. I made a version of bloodmap compatible with warzone last night, and am currently playing with adding some features.

Archangel35757 and Stoiss like this
Link to comment

Ohh man, are you sure it's not damn Farcry?)...

Hope one day it's going to be merged with Rend2, gameplay features of JKG, some smooth sabersystem and new approach to the force powers -

JKA will have a new birth finally.

He actually is using Rend2 as a base.

Link to comment

@@UniqueOne -- how goes it with the bloodmap alpha blending code?

 

The alpha stuff is on the todo list, but I havn't had a chance to look into it yet 

 

The good news is I have been working on other parts of that version of q3map2 though to create a much better bsp compiler without all the dumb limitations.

 

With the new enhanced version it is possible to create massive maps with a crazy amount of detail. It is also possible to compile warzone trees into a bsp and use it on non-warzone games.

 

Also updated the output of the console to give mappers a much better idea of how long things will take to complete with real percentage completed bars, not the random printing to screen of "1...", "2...".

 

Here's a screenshot of the new compiler :)

 

EE51sXd.jpg

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...