SUBSIM Radio Room Forums

SUBSIM Radio Room Forums (https://www.subsim.com/radioroom/index.php)
-   SH4 Mods Workshop (https://www.subsim.com/radioroom/forumdisplay.php?f=219)
-   -   [TEC] SH4 models and texture maps (warning: large pictures) (https://www.subsim.com/radioroom/showthread.php?t=126436)

skwasjer 12-06-07 09:21 PM

[TEC] SH4 models and texture maps (warning: large pictures)
 
Now that I have had a chance to get good look at the game assets (models/textures), and what techniques the game engine uses to draw models I think we need a dedicated technical thread.

For the time being, I will only focus on ships (but I will add interiors in some time). How to import or export them will also be added later, for now it's just how the game draws them. This info should be useful to those who want to create or modify models.

First, the available textures:

..._T01, RGB channels = Diffuse map
..._T01, Alpha channel = Optional, specular map (see below)
..._O01, RGB channels = Ambient Occlusion & dirt map
..._O01, Alpha channel = Optional, specular map (see below)
..._N01, RGB channels = Normal map (aka bump map)

The specular map is special, as it can be either in the alpha channel of the diffuse texture or the ambient occlusion texture. And it's not a required texture either. The game identifies which texture to use with the UnifiedRenderControler > UseSpecularFromDiffuse. All the other extra maps can also be turned on or off with this controller.

Below are shots with combinations of the maps enabled. The shots are rendered in 3ds Max, so this also shows I got all uv-maps in. Please note that I do not attempt to get the same look as in game, because the game uses shaders and all sorts of other stuff to make it look even better. The shots are made to show the difference.



Diffuse only

The model has only the diffuse map applied. It looks very plain. Shadows are calculated based on vertex normals only. The shadows depend in this case solely on the light sources in the scene. Since I have a big light above the model, there aren't much shadows seen at the top of the deck.

http://sh4.skwas.net/3dsmax/Diffuse.jpg

Close up:

http://sh4.skwas.net/3dsmax/CloseUp_Diffuse.jpg



Diffuse + Specular

Same as previous shot, but with the specular map applied. The specular map is used to determine how much light is reflected. The most obvious highlights are seen at the keel and midsection of the hull. It depends on camera angle and where the light sources are. At different angles the effect can be seen better.

http://sh4.skwas.net/3dsmax/Diffuse+Specular.jpg

Close up:

http://sh4.skwas.net/3dsmax/CloseUp_...e+Specular.jpg



Diffuse + Specular + Ambient Occlusion/dirt map

With the ambient occlusion map applied, the whole ship is now darker. The ambient occlusion map is basically used to apply prerendered shadows to the ship. No light sources have changed!

The game uses a completely different UV-set (texture coordinates) for this texture, which is the most common problem experienced in today's modding, since no tool can export/import the additional set(s), yet!

Occlusion maps are often also combined with a dirt map. A dirt map is a map that has extra detail, dirt, rust, scratches, and what not. When blended with the diffuse map, this will add more variaty to the overal look of the model. The model no longer looks plain, and texture tiling is no longer very apparent. Look just below the turret base, you can see a whole lot of rust/dirt that wasn't in the previous shot...

You can also see the specular highlights better now.

http://sh4.skwas.net/3dsmax/Diffuse+...mbientOccl.jpg

Close up:

http://sh4.skwas.net/3dsmax/CloseUp_...mbientOccl.jpg



Diffuse + Specular + Ambient Occlusion/dirt map + Normal map (bump)

Not so apparent from a distance, the bump map provides yet even more detail. Instead of modelling small details like ladders, windows, doors, wires, rivets, etc with polygons, such details can also be faked by your graphics card. The bump map provides info what area 'sticks out' or 'falls into' a surface. In combination with light shining on a surface the graphics card will produce shadows which will give it a raised or lowered look. You can see the bump map in action better below in the close up shot, I overdid the effect a bit so you can see more clearly (compare also with previous closeup).

http://sh4.skwas.net/3dsmax/Diffuse+...tOccl+Bump.jpg

Close up:

http://sh4.skwas.net/3dsmax/CloseUp_...tOccl+Bump.jpg


More to come later.

PS: I am by no means a 3d expert, just for the record :88)

AVGWarhawk 12-06-07 09:24 PM

Ok man, you talking a foreign language to me! Where are you going with this:hmm:

ReallyDedPoet 12-06-07 09:27 PM

One part of the game that needs a little work, by the look of things though :roll:,
not for long :up:


RDP

skwasjer 12-06-07 09:32 PM

Quote:

Originally Posted by AVGWarhawk
Ok man, you talking a foreign language to me! Where are you going with this:hmm:

I want to outline how the game uses models and texture assets, and will add in the future how to get everything in and out of 3d modelling software. Basically, I want this to be a thread where all technical related info is gathered, for those that want to understand. I realise the uber 3d guru's are not impressed by this info, and others could care less about how it's done, but there's a group that wants to know ;)

AVGWarhawk 12-06-07 09:36 PM

Now I get the picture:up:

Digital_Trucker 12-07-07 12:04 PM

Quote:

Originally Posted by skwasjer
I realise the uber 3d guru's are not impressed by this info, and others could care less about how it's done, but there's a group that wants to know ;)

To paraphrase the catchline of a popular grocery store gossip mag, "Perspiring minds want to know". And my mind is perspiring, so I guess I fit into that group:lol: .

Thanks for the info:up:

ref 12-07-07 12:13 PM

Skwasjer, you mentioned in another thread a 3d file format you're using for exporting the objects, do you have the tech specs?, I really wan't to give it a look to see if I can use it in a project I'm working on, and to improve compatibility between tools, when sansal wrote pack3d he choosed the obj file format because he worked with Maya, and also it's a simple format, but it lacks a lot of features (multiple tmaps, hierarchical models, etc).

Ref

DeepIron 12-07-07 12:21 PM

If your project concerns an SH4 compatible object you should note:
The .obj formt is the original geometry format used in SH4 .dat files... You could use any other geomtry format you wished for development, but would have to convert to .obj to be encapulated in the .dat file. SH4 doesn't read any other geometry format that I know of...

ref 12-07-07 12:28 PM

Quote:

Originally Posted by DeepIron
If your project concerns an SH4 compatible object you should note:
The .obj formt is the original geometry format used in SH4 .dat files... You could use any other geomtry format you wished for development, but would have to convert to .obj to be encapulated in the .dat file. SH4 doesn't read any other geometry format that I know of...

That's incorrect, the format embedded in the dat files is propietary of SHx series, and doesn't match any comercial 3ds file format, in fact the obj files are ASCII files and the dat files are binary, the obj file format is just used by pack3d to import export from that format, IIRC, the dev team uses 3dsMax for they work so I asume they have import modules for that format.

Ref

DeepIron 12-07-07 01:00 PM

Well then, I stand corrected... ;)

mrbeast 12-07-07 01:53 PM

Very interesting thread Skwasjer, this is just the info I needed at the moment as I've been experamenting with some skinning of my own. I had kinda figured out what you put in the first post over the course of a week or so! :lol:

Something that I find a bit of a shortcoming in the process that SH4 uses to skin the ship models is that the O01 files are pretty low res compared to the T01 files.

So if for example you wanted to place some writing on the side of a ship, it comes pretty fuzzy looking.

Is there a way around this?

skwasjer 12-07-07 02:16 PM

ref, I use Collada. It's xml, open source and most 3d suites support it directly or using a free plugin. It can hold any info we need for SH3/4, including multiple uv-sets, material info, parent-child relationships, named objects/containers etc. S3D will support export in the next release, and import in the subsequent one.

I will post a guideline and tutorial on 3ds max and Collada in the next weeks. The format does have limitations (basically some manual post-processing) but they are discussed in that tutorial and are only minor issues that you deal once with...

skwasjer 12-07-07 02:26 PM

Quote:

Originally Posted by mrbeast
Very interesting thread Skwasjer, this is just the info I needed at the moment as I've been experamenting with some skinning of my own. I had kinda figured out what you put in the first post over the course of a week or so! :lol:

Something that I find a bit of a shortcoming in the process that SH4 uses to skin the ship models is that the O01 files are pretty low res compared to the T01 files.

So if for example you wanted to place some writing on the side of a ship, it comes pretty fuzzy looking.

Is there a way around this?

When you are able to import/export you can do anything you like. You could break the mesh apart and retexture parts of it with a new material/texture (which includes your text/writing).

Another possibility is to create a higher mip level (2048^2) of that single texture and add your writing.

Which approach is best depends on your own needs. You need to take into account how much extra weight you add to the gpu. Both can work. I'm sure there are other alternatives, but I'd ask a 3ds max guru then :)

kapitan_zur_see 12-07-07 04:25 PM

Though not a professionnal by any means, i quite know my way around 3dsmax and 3D in general. From what i've read here, you got everything correct Skwas.
The problem we indeed face off while using pack3d is that it can only import one texture channel, which is the diffuse one, alongside only ONE uvw texture coordinate (that's particular to .obj format), hence, occlusion map is bypassed and will be confused while ingame.

For people that are interesting in what occlusion mapping is, it is generally used in the gaming industry and more or so, you made them by using "rendering to texture" function in 3DSmax which is also called "baking texture". It is basically generating a texture containing information on how to render lighting for a rendering engine. The main purpose of occlusion techniques are to mimic the quality of a raytracing or radiosity rendering. Those two are very professionnal rendering method and while they produce very high quality images (they use it for instance in those pixar movies and the like) and precise depicting of real lightning behaviour, they are very processor hungry and therefore, cannot be use for the gaming industry as it is not precalculated animation, but requires of course real time rendering. Not that it couldn't, but you would just end up with something like one frame per MINUTE.

To sum it up for the occlusion lightmap (there are other occlusion type of maps by the way), Typically, 3dsmax will first do a raytrace rendering with complex light sources algorythms ( don't know of...lol) for a high quality depicting of shadows and light behaviour and will then "project it" on a texture. This is why it is called baking texture or "rendering to texture". Another kind of those rendering to texture techniques, is the well known normal map wich is also precalculated into a 3D program in a quite similar way.

As It is with pack3d now, the lack of occlusion channel will produce flickering and stuff typical to bad uvw mapping and the like. That is, unless you create a 3d object specifically "made" in the dat file to be rendered SH3 way (you can actually "clone" a SH3 object like one u-boat and overwrite one US sub or whatever with it and bang, no texture flickering but looks out of place due to rendering engine improvements between SH3 and 4 and therefore, is certainly not a solution to be considered).

Well, i hope i didn't sound all too confusing and "academic" lol

ref 12-07-07 06:06 PM

Quote:

Originally Posted by skwasjer
ref, I use Collada. It's xml, open source and most 3d suites support it directly or using a free plugin. It can hold any info we need for SH3/4, including multiple uv-sets, material info, parent-child relationships, named objects/containers etc. S3D will support export in the next release, and import in the subsequent one.

I will post a guideline and tutorial on 3ds max and Collada in the next weeks. The format does have limitations (basically some manual post-processing) but they are discussed in that tutorial and are only minor issues that you deal once with...

I'll give it a look, I'll download the specs from their site, never worked with XML before, but it can't be that difficult.

Ref


All times are GMT -5. The time now is 03:44 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © 1995- 2024 Subsim®
"Subsim" is a registered trademark, all rights reserved.