Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

FPSC Classic Product Chat / Some graphical improvements without modding the source

Author
Message
Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 18th May 2013 15:21
Hi all, there is something new: As some of you know, the preparations for the sequel to "Into the Dark", a trashy voyage "Into the Ice", have started. Don ´t expect a version soon, as we want to wait for the first usable beta version of FPSC-R to make the decision on which engine the game will be rolled out.

However, I did some grass-root work to develope texturing / shading techniques that will come up useful no matter which engine will be choosen in the end.

First (and that`s clearly FPSC-targeted), I have adapted the shading of bond1-shader normal mapped static entities to fit seamlessly into bond1-shader normal mapped segments. It`s only a minor tweak in the shader itself, the rest is done via adjustement of the alpha-stored spec map.

Second, I came up with a technology I call so far "adaptive texture detail level". I will cut the tech talk short and tell what that´s supposed to mean: In real life, the closer you get to a surface, the more details you see. Take a walk in the park and look down on the grass. Then, lay down and look again at the grass. You will definately see more details then before
In computer games, getting closer than the average polishing distance for texturing was during the developement, you actually loose details. the textures start to either pixelate or to blur because the texture filter of your GFX card tries to trick your eye.
My approach uses basic perception psychology (you know, I earned my PhD in psychology ages ago, while I never worked as Psychologist, I still got access to interesting literature) to have remarkable details that catch the eye if you are far away, another ones if you are in mid range and some ones that are really close.
As I combined that with texture resolutions ensuring that no filtering will ever have to jump in, I would have either ran out of RAM or have many repeating same textured surfaces, making the whole thing boring to look at. So I kicked in fully shadered overleys and additions that can be spread across the textures to ad variety.

Take a look:



Third, I was tired of the glass reflection white dots the standard cubent shader would spit out on the windows glass, so I created an adaptive system that uses secenery-based cubemapping for the windows. Costs no performance at all:




And, as seeing in action is believing, take a look at the video over there:

http://forum.thegamecreators.com/?m=forum_view&t=201574&b=35&p=1

Get Into the Dark here:



Come to where the madness is:http://www.indiedb.com/games/into-the-dark
Flatlander
FPSC Tool Maker
17
Years of Service
User Offline
Joined: 22nd Jan 2007
Location: The Flatlands
Posted: 18th May 2013 15:42
Yes!! I'm glad to see something that can actually be done with FPSC and become commercial.

How many people worked on this game? Including all the voice overs and other audio visual effects. Did I miss the credits section when I visited your site?

Also, what lightmapping specs did you use in the setup.ini?


I'm addicted to programming and coffee!
Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 18th May 2013 15:47
This scene has LMS 512 and LMQ 55.

On Into the dark, there was a core team of 3. Loony for 2D art, Mickey for 3D Art and all the rest (level Design, coding, scripting, model & texture covnersion etc) was done by me.

Voice over actors: 9

Testers: 8

Come to where the madness is:http://www.indiedb.com/games/into-the-dark
Flatlander
FPSC Tool Maker
17
Years of Service
User Offline
Joined: 22nd Jan 2007
Location: The Flatlands
Posted: 18th May 2013 17:45
Thanks for the info Ertlov. I forgot, congratulations on the success of this Indie game. I hope you sell a lot. The price seems very reasonable for an Indie game.


I'm addicted to programming and coffee!
s4real
VIP Member
17
Years of Service
User Offline
Joined: 22nd Jul 2006
Location:
Posted: 18th May 2013 18:48
Quote: "n computer games, getting closer than the average polishing distance for texturing was during the developement, you actually loose details."


This is what LOD is and will be added to reloaded.

The main reason modern games use it is to get better performance as the detail don't need to be as good.

The only difference with your method is its faking the effect without reducing the models.

Its a nice effect and looks good.

Well done on your game.

best s4real

Pack ya games with vishnu packer its free. Vishnu game launcher is now released.
Help keep vishnu free by pledging now :- http://vishnu.chipin.com/vishnu
Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 18th May 2013 20:16
Quote: "This is what LOD is and will be added to reloaded.
"


No offense s4real, but as I have made a living out of indie developement and AAA games producing / marketing for almost 10 years now, I know what LOD is

...and I agree that having LOD will have a positive impact on FPSC-R, it will make my approach by far easier to handle. However, it`s not the same. I am talkign about having detail that jump out to be remarkable for every distance you are away from the object while having never a texture resolution lower present than the viewport resolution is at the moment.

Come to where the madness is:http://www.indiedb.com/games/into-the-dark
Corno_1
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 18th May 2013 21:40
Wow, this shows us again what is reachable with FpsC! Sadly you just show us that it can be done, not how!

The screenshots are really great in their own style. Dirty, rusty and shader intensive.

I did not understand all what you write, but very interesting.

Corno_1


Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 18th May 2013 21:44
Quote: "Wow, this shows us again what is reachable with FpsC! Sadly you just show us that it can be done, not how! "


I ALWAYS share my stuff, just give me some time to figure out the optimums and then I will give you a tutorial.

Come to where the madness is:http://www.indiedb.com/games/into-the-dark
Tomahawk
11
Years of Service
User Offline
Joined: 16th Dec 2012
Location: Where do you think I live?
Posted: 18th May 2013 22:07
Quote: "I will give you a tutorial."

Sounds great! that would be a greatly appreciated tutorial.

Burger
11
Years of Service
User Offline
Joined: 22nd Jun 2012
Location: New Zealand
Posted: 19th May 2013 03:02
Sounds awesome! This should be really helpful for others (and me )

- An Instinctive Fear IndieDB page, download demo today!
s4real
VIP Member
17
Years of Service
User Offline
Joined: 22nd Jul 2006
Location:
Posted: 19th May 2013 04:54
Quote: "No offense s4real, but as I have made a living out of indie developement and AAA games producing / marketing for almost 10 years now, I know what LOD is

...and I agree that having LOD will have a positive impact on FPSC-R, it will make my approach by far easier to handle. However, it`s not the same. I am talkign about having detail that jump out to be remarkable for every distance you are away from the object while having never a texture resolution lower present than the viewport resolution is at the moment."


No offense taken at all both methods are called LOD(level of detail) you just using the method that called mipmapping and not a new tech that you invented.

Its nice that you got this working in fpsc and I've been working with game engines for some time as well so please lets not go down I've been doing games for 10 years.

wish you all the best in your game and the video does look good and look forward to you sharing this.

best s4real

Pack ya games with vishnu packer its free. Vishnu game launcher is now released.
Help keep vishnu free by pledging now :- http://vishnu.chipin.com/vishnu
Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 19th May 2013 13:38 Edited at: 19th May 2013 14:03
Quote: "you just using the method that called mipmapping and not a new tech that you invented."


1. I never claimed to have invented something and 2. you are either wrong or you still don´t get the point what I mean (most likely because of my English). I am NOT talking about a technical approach, I am talking abour perception. I worte "techniques" but that doesnt mean new technology, its rather "methods of working".

(I fear I also made some misleading descriptions in the video. Detai Level 1 - 3 doesnt refer to the detail level of polygons or used texture, but to detail level of perception. First you see a metal-concrete wall with waved metal, second you see the enforcing rusted element in the middle, third you see the small breaks and worn out elements on bottom. The texture is always the same.)

You think and try to explain technically (no wonder given your background), but I am refering to design issues (and accompanying helping tech). Mip-Mapping is old stuff and well-known, I dont use it all. But here, no matter where you are looking at something, only one single TexMap without MipMaps is used per Object / (accompanied by Normal and Spec of course). The only technical stuff I use for this is A) the unified-looking shader and B) a texture resolution calculated out of the object size and Uv layout to be high enough that no filtering will ever kick in.

The rest is DESIGN. Rolfy and Wolf and some others have a design approach and skill that makes most of my thoughts unneccessary, but for the big number of others some thoughts on that are essential.

Let´s talk about an example, let`s say about a wooden interior wall in a room sized 5 * 8 * 2. We are talking about 80 times the same texture, but for obvious design, variety and detail reasons we make the lower and the upper wall from the same photo original, but as different textures.

-> 40 times the same segment texture in the scene.

Now for the resolution:

If we create a scene where the player can go to the wall and stick his nose into it, we need a texture res of 2048*2048 for the wall if we comply to my insane "no texture filtering" demands. You can use 1024*1024, too, but then you have to keep in mind your Pixel / square metre ratio for all other segments and static assets.

And that ´s the first essential point: All your static assets and segments need approx. (roughly) the same amount of texture information per surface size. As for static entities, you have to take a look at the UV layout and calculate roughly the needed texture size. As an example, if you have a Desk that is roughly 1 * 1 metres, you could come to the conclusion that 1024*1024 texture size is enough compared to the 2048*2048 textures for the 2*2 metres textures.
But if you open the diffuse map, and see that the 1*1 metres surface is mapped by only 30 percent of he Texture and the rest is used for the sides, decoration elements e.t.c., you have to retexture it in a total of 2048*2048. And retexturing doesn`t mean blowing up the original diffuse, sharpen it and save it again, it really means applying a new texture based on the given UV layout. And THEN firing up CrazyBump or drawing Normal maps by hand.

If you have taken care of all of that, you will have every squarefoot in the scene represented by the roughly same amount of texture information and resolution. If you have now the same or a very similar shadering applied to the segments and static surfaces (which also implies objects of similar materials, as you most likely won ´t shade antique woods with the same settings as futuristic endurium metals), and if you have a decent lighting, they will visually melt together into a scene that looks like perfectly fitting, no matter how far or close you are away from the texture details. On the other hand, if you have a high-res wall and put a switchbox to it with 512*512, it will look displaced and artificial no matter how good the model and texture basically is.

So, if we have the unified shading and the comparable texture quality and resolution at hand, we have to look into the diversity.

If we look at same-textured segments next to each other, lets say a 8*2 wall from a distance of 5-8 segments, the tiling is obvious, we see a plane composed of tiles. The first thing that breaks this feeling are the scenery objects standing in front or attached to the wall. Together with a decent lighting, your scene compostion shall remove the obvious tiling as far as possible, but there will be some segments next to each other left which still make the tiling obvious. Here we have to ad diversity manually, I try to explain that here:



And here I kick in some psychological approaches. I want to have details that catch your attention from far away, rather close and very close.

- far away: A huge overlay, a huge (static entity) plank hanging down or nailed to the wall
- rather close (when only 2-3 of the same segments are in sight): a smaller overlay or a variation of the texture with an additional crack or other interesting element
- very close (in the case of the mentioned wood plank wall, it would be the screw heads of the screw holding the wall together)

So basically all these Design approaches, combined with a unified shading and a unified texture resolution / quality per certain surface size should lead to a perfectly organic and varying scene look. It`s not an invention or a new technological breakthrough. it´s a combiantion of design guidelines and minor technical tweaks.

So, did this count as tutorial, too?



Come to where the madness is:http://www.indiedb.com/games/into-the-dark
Pirate Myke
13
Years of Service
User Offline
Joined: 31st May 2010
Location: El Dorado, Ca
Posted: 19th May 2013 16:41
I would say it definatly counts as a tutorial. Very interesting approach to the use of textures. Thank you.

elbow
13
Years of Service
User Offline
Joined: 3rd Dec 2010
Location:
Posted: 19th May 2013 17:12
Hi ertlov

Although I get the main concepts, the detail... I am still lost - tuts need to be step by step for me, sorry.

Analyse that, doc

Corno_1
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 19th May 2013 17:33 Edited at: 19th May 2013 17:35
Quote: "Although I get the main concepts, the detail... I am still lost - tuts need to be step by step for me, sorry. "


One person think like me Maybe I need a badge to understand!

Addition:

I also ask uzi idiot, but even he is not knowing how to do.


uzi idiot
Valued Member
14
Years of Service
User Offline
Joined: 27th Dec 2009
Location: Who Knows?
Posted: 19th May 2013 19:09
Wow, this looks awesome!
I can't wrap my head around it however

If something compiles on the first try. Something is terribly wrong.
Tomahawk
11
Years of Service
User Offline
Joined: 16th Dec 2012
Location: Where do you think I live?
Posted: 19th May 2013 20:26
That was a little over my head but i understand the concept but wouldn't know how to implicate it into my game.

Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 20th May 2013 16:23
I will try to break the basics down to easy-to-follow single steps.

Come to where the madness is:http://www.indiedb.com/games/into-the-dark
Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 20th May 2013 17:15 Edited at: 20th May 2013 17:32
First step: Unified Texture resolutions

Before you start preparing your assets, you must determinate the rough amount of texture information per given surface size. If you work with common segments (no fancy 3DS creations converted to non-standard-size segments) the resolution of a plain segment texture is setting your standard value. You can go either for 1024*1024 or 2048*2048. 512*512 is possible, but very ugly when you come close to the walls.

For this tutorial, we assume that we have decided for 2048*2048, which will limit our variations (due to RAM issues), but provides the best visual experience.
If you want to stick with 1024*1024, simply take always half of the mentioned values.

1. Prepare your segments textures

Basically you choose which segments will be used and then re-texture them with a 2048*2048 map. Please note that scaling up and sharpening an existing lower res texture won`t help. So if you have, as example, the file "wk_all_01_d2.dds" from your Files\texturebank\ww2\walls\concrete folder:



...you will have to replace it with something like that:

(ATTENTION: INSANE PIC SIZE AHEAD!)


[Mod Edit: I've changed into a link so it doesn't stretch the forum.]

http://imageshack.us/a/img402/6122/wkall01newd2.jpg

Please note:

- If you use "Sets" from the stock media folder that have already texture variations and call different _D2.dds files when creating a room, you have to retexture ALL used texture maps.

- Floors and ceilings will have to be retextured, too, in the same manner.

- You have to create new Normal maps for the files if you want to use shaders (heavily recommended).

- Use a maximum of 14-16 such huge segment textures if you don´t want to run into memory problems immediately, so 3 different floor textures, 2 different ceilings and 10 different walls will have to be enough. This is a very low number, but we will ad variety with 3D modelled wall applications and 2D overlays later.

The most important thing is: We know now that (assuming a segment has a 2000 * 2000 millimeter surface visible ingame) we need approx. 1000 pixels per meter or 1 pixel per millimeter.

Keep that in mind when we go over to:

2. Prepare your static entites

Take a look at each of your static entities Diffuse Map. There you see the UV layout, and as you know how big the entity appears ingame, you can make a pretty educated guess on how many pixel represent a certain surface of the object ingame. As an example, I look at the schaltschrank texture from daarbovens Industrial assets:



It´s a pretty good photo-based texture work! However, when I look at the part that roughly reflects 1 * 1 meters (or 1000*1000 millimeters) ingame appearance...



...I see that I have only 400-450 * 400-450 pixels stored information. This would be perfectly right if I had choosen 1024*1024 as segments texture size in step one, but here it`s far too low. So I blew it up as base for retexturing by doubling the sides, added some high-res scratches and rust overlays and applied a highly-detailled 3D obejct. After that, the same area looks like that:



Now we have a area of around 850*850 pixels for an ingame surface of around 1*1 meters, which is actually enough (1000 would be optimum, but everything between 800 and 1200 will work fine), and it´s full of interestign and sharp details.

What do we do now?

- We use the same technique for all our textures, small static objects can turn out fine with 512*256 textures, some of the biggest will go to 2048*2048.

- We also create normal and spec maps for ALL of our new textures.


3. Overlays & Dynamics


We now apply the same approach to all other textures. Especially 2D overlays that will be used to mask and cover the visible tiling need to be of high quality, so if you create a 2*1 meters fungus or blood overlay, you will have to start with a detailled 2048*1024 pixels picture.

I hope you got that all so far, the next step will be the unified shading, I will explain that when I have some time to create the example assets.

Come to where the madness is:http://www.indiedb.com/games/into-the-dark
mnemonic
17
Years of Service
User Offline
Joined: 14th Jan 2007
Location: Sweden
Posted: 22nd May 2013 19:26
Very intresting read! I am fooling around in fpsc trying to make my game to look as good, and appealing as possible. I agree that this is a design issue, rather than technical.

Shaders are good, but then the textures also has to be nice and properly made.

www.memblockgames.com
DarthBasicVader
18
Years of Service
User Offline
Joined: 28th Nov 2005
Location: Cyberspace
Posted: 22nd May 2013 20:43
Very interesting Ertlov,
you really got the point with FPSC (don't say no! )
You have all my respect ... and best of all I'm buying
the game!

Ric

Riccardo
Ertlov
17
Years of Service
User Offline
Joined: 18th Jan 2007
Location: Austria
Posted: 25th May 2013 12:56
Thank you very much. I will continue this tomorrow with the shader descriptions and shadermaps tutorial.

Come to where the madness is:http://www.indiedb.com/games/into-the-dark

Login to post a reply

Server time is: 2024-04-24 05:40:22
Your offset time is: 2024-04-24 05:40:22