Zakyrus_theOmega@Posted: Tue Jun 19, 2007 10:17 pm :
Anyone know of a quick way to make increase the image quality of the textures? I have a 8800GTX OC 768MB card and the textures could look so much better.

When I mean image quality I am thinking along the lines of "twice as much detail" ...photoshop maybe? Lets say for this example I'll use textures/base_floor/a_bluetex1a_02.tga... Anyone know of any "quick" techniques to make this look 2x better?



Manc@Posted: Tue Jun 19, 2007 11:20 pm :
It doesn't exist. Resizing small textures to a larger size may make the image dimensions larger, but it has to use (at best) advanced bicubic operations to try to "stretch" the detail out. In the end, because the image has to be the same size anyway, it'll get scaled down or it won't tile properly across faces.

So, basically it can't be done with any sort of appreciable quality. Not to mention doing stuff like that to games ruins your ability to do things like play online or work with mods.



Kristus@Posted: Tue Jun 19, 2007 11:20 pm :
Wisp you magic wand you got when you attended Hogwarts over it 5 times while chanting the magic phrase. "ZOMG MORE DETAILZ PLZ"



zenarion@Posted: Thu Jun 21, 2007 2:13 pm :
You could make them yourself if you are ambitious enough.
New normalmaps could be baked or something.



BloodRayne@Posted: Thu Jun 21, 2007 4:48 pm :
The scope of work that it takes to mount a project as big as retexturing Doom3 is vast. In a lucky scenario retexturing one asset takes 20 minutes: This means drawing a diffusemap from scratch, creating a specular map, a localmap and an extra heightmap pass for detail and creating the material decl for it. Realizing that there are over 3200 different texture assets alone in Doom3 (models, geometry, weapons, monsters etc..etc..) makes this a project involving atleast 1066 hours and that's if y'er really lucky.

There are some retexturing projects going on at this moment for Quake 1, Unreal 1 and such other oldies, some have amazingly good results. I'm not expecting any kind of retexturing project for Doom3, considering that it's much more fun to make new assets for a new TC or Mod. Basically you're out of luck here.

You might be able to pull of some batch of photoshop work to sharpen things up a bit, but the quality won't be 'amazing'. Better to look into things like the parallax mapping mod if you want to improve depth and such in the Doom3 textures.

Hope that helps.



Bittoman@Posted: Thu Jun 21, 2007 5:38 pm :
Kristus wrote:
Wisp you magic wand you got when you attended Hogwarts over it 5 times while chanting the magic phrase. "ZOMG MORE DETAILZ PLZ"


Dammit, I just graduated Hogwarts with high OWLS and NEWTS marks and even top of my class in Charms yet they still never taught me this spell :(:D



pbmax@Posted: Thu Jun 21, 2007 6:08 pm :
you could try making a few single super hi res "noise" textures and apply those to each surface by using a fragment shader.

this would make everything look more dirty, but it could also add more detail to it.

but... you'd probably also have to rewrite all the material shaders.



Kristus@Posted: Thu Jun 21, 2007 6:25 pm :
In a game like Doom3, it'd be nice if you could turn off the bilinear filtering on the textures. Not for the organic stuff though, since that wouldn't make sense, but on all those tech panels. really no reason why they should be smooth filtered like that.



Zakyrus_theOmega@Posted: Sat Jun 23, 2007 6:03 pm :
pbmax wrote:
you could try making a few single super hi res "noise" textures and apply those to each surface by using a fragment shader.

this would make everything look more dirty, but it could also add more detail to it.

but... you'd probably also have to rewrite all the material shaders.


I think you may be on to something here. Rewriting each material file (which is time consuming, but much less than speding 20 mins on each texture)

Would it be possible to give me a very quick lowdown on how this is down? (apllying the texture as a fragment ..I am more used to coding/scripting than texture stuff.

Let's say I make a basic "noise" texture, what "text/code" would I include with each material file to make it appear. (Just give me something real basic so I can just get it working - I'll hopefully figure out the rest.)


Thanks a million.



Zakyrus_theOmega@Posted: Sat Sep 15, 2007 7:18 am :
I am in need of assistance by some "game art" gurus:

1. I need help making a mirror effect on stectile surface.

Now, to my understanding RenderMirrorMap int, int is used to do this,
how would I place it in the material so that it creates a mirror in the
reflection of the tiles.


textures/base_floor/stectile1quad2
{
surftype10
qer_editorimage textures/base_floor/stectile1quad2.tga
{
Program heatHaze.vfp
vertexParm 0 time * 0 , time * 0 // texture scrolling
vertexParm 1 .3 // magnitude of the distortion
fragmentProgram heatHaze.vfp
fragmentMap 0 _currentRender
fragmentMap 1 textures/sfx/vp1 // the normal map for distortion
MirrorRenderMap 1024 1024
}
{
blend bumpmap
map addnormals (textures/base_floor/stectile1quad2_local.tga, heightmap (textures/base_floor/stectile1quad2_bmp, 4) )
}
diffusemap textures/base_floor/stectile1quad2.tga
specularmap textures/base_floor/stectile1quad2_s.tga

}


I tried the above code, but I can only get as far as seeing a mirror that shows below the level (even nearby rooms are shown in the mirror that shouldn't be there) Also, the mirror glitches when moving the view around. I can add a screenshot if desired. I tried the command "mirror" which reflects flawlessly but can't have layers added/blended (at least to my knowledge)

Also, I want to add a fragment program (heathaze) that layers only on the
mirror stage (not the tiles stage). (which would give a warping effect to the reflection) is this possible
or am I dreaming?

It it possible to make the mirror work perfectly on the tiles while having the heathaze.vfp ONLY affect the reflection (not the tiles themselves).

2. I created light effect; firecaustics
Basically, this is just another light that creates an animating fire effect on surfaces.
(actually I combined this so all roundfire1 & 2 use a variation of this too)

lights/firecaustics
{
{
forceHighQuality
map lights/lavacaustics.tga
colored
translate time * .02 , time * .02
//rgb storm2table[ time * .1 ]

}
}


Now, when the light is projected on the ceiling or floor it looks awesome. When on a wall however, it gets that
"Doom3 light stretch effect" - any quick fix to this? I want the Faked Caustics to project evenly along all surfaces without "stretching".

Please help me resolve this.



rich_is_bored@Posted: Sat Sep 15, 2007 11:14 am :
First, you're trying to make use of two image maps in a single stage. The one produced by a fragment program and the one produced by mirrorrendermap.

You can't do that. Each stage in a material shader can only make use of a single image.

Second, fragment programs have a limited scope in id Tech 4 games. They can only manipulate image data stored in buffers like _currentrender, _scratch, ect...

I believe mirrorrendermap stores it's image data in _scratch so you may have some luck passing that to the fragment program but expect buggy results. IMHO, the results of mirrorrendermap are garbage as is and heathaze was built with the intention of distorting the current render.

Outside of the general purpose distortion effect that heathaze provides, there isn't much you can do in the way of image manipulation. You're pretty much limited to color, scale, shear, translational, and rotational adjustments.

IMHO, you're much better off with an environment map. You won't get the 100% accurate realtime reflections you're after but they make use of the normal map stage so distortion will come naturally.

As for subtle distortion, just add a very subtle cloud-like height map to your normal map stage. You can decrease the intensity in the material shader to the point where it has no visible effect on the tiles themselves but it will produce an impact on the reflection of your environment map.

The projected lights in idTech 4 games suck. They should use cube maps but they don't. Instead they literally project an image along the z axis (up/down) and the result is as you describe, stretching on the walls.

There is no fix short of using spotlights so you don't have to concern yourself with the sides.

I'm going off on a tangent here but der_ton made a pretty cool demo based on his model viewer that demonstrates what the game would look like with proper cube map lights although I don't know if it's still available.



Zakyrus_theOmega@Posted: Sat Sep 15, 2007 11:28 am :
Thanks for the response!

That sucks. The "mirror" itself works flawlessly (ofcourse overpowering all layer effects the stectile looks like it's made of Mercury), but the MirrorRenderMap IS totally gay. I probably piddle around with the MirrorRenderMap a little longer before I go with the env/map idea. (Damn, I can totally handle the realtime reflections too...) I can get the MirrorRenderMap to look very close (with the 'garbage' of other floors) I'll post back on this either method I try.

Damn lack of cubemap lighting! Grrr! id taunts me with their Renderer SDK which is sealed in 1,000 vaults. So I'm pretty much stuck with "low-level" caustics - which is ok, because I'm sure I can fake the effect so that stretching will make the "caustic" look better. Where there's a will, there's a way.

So... I'm pretty much screwed in both cases until id releases their Doom3 renderer code (ack! foiled again! RAGE needs to be released sooner.. hehe)

EDIT:
Oh, and one more thing... If I want to add falloff to all lights in Doom3 by changing the .mtr files.

Let's say I do this:
lights/biground1
{
lightFalloffImage makeintensity( lights/squarelight1a.tga )
{
forceHighQuality
map lights/biground1.tga
colored
zeroClamp
}
}

which is better, that or this:

lights/biground1
{
{
forceHighQuality
map lights/biground1.tga
colored
zeroClamp
}
{
forceHighQuality
map lights/biground1.tga
colored
scale 1.5, 1.5
zeroClamp
//then add some alpha intensity to make the second layer more transparent...
//if so what do I put here?
}
}

Which method would be better to add "Faked" and increased falloff.



rich_is_bored@Posted: Sun Sep 16, 2007 6:05 am :
I'm not sure I'm following you. What do you mean by increased falloff?

Technically you can increase the falloff of a light by shrinking it's volume.



Zakyrus_theOmega@Posted: Sun Sep 16, 2007 6:12 am :
rich_is_bored wrote:
I'm not sure I'm following you. What do you mean by increased falloff?

Technically you can increase the falloff of a light by shrinking it's volume.


Ok, "falloff" is the wrong word. Let's say, I want to duplicate the stage of light, then scale the light 1.5 times larger, then in the duplicated light stage -- increase the amount of translucency (so the light has a more intense part, then fades to a lesser intensity/greater radii)



rich_is_bored@Posted: Sun Sep 16, 2007 10:21 am :
Overbright lights perhaps?

http://www.katsbits.com/htm/tutorials/q ... =&ucat=13&



Zakyrus_theOmega@Posted: Sun Sep 16, 2007 10:31 am :
rich_is_bored wrote:
Overbright lights perhaps?

http://www.katsbits.com/htm/tutorials/q ... =&ucat=13&


:mrgreen:
Thank you so much this is EXACTLY what I am talking about. Thanks again!



Zakyrus_theOmega@Posted: Wed Oct 17, 2007 5:56 am :
As for the mirrorRenderMap command, I got something that works pretty well.

On searching various places on modwiki, I found this site:
http://www.modwiki.net/wiki/How_to_add_water

I used the Fresnel.vfp found there:
Code:
!!ARBvp1.0
OPTION ARB_position_invariant;

TEMP R1, R2, R3, R4;

SUB R1, program.env[5], vertex.position;
DP3 R2, R1, R1;
RSQ R2, R2.x;
MUL R1, R1, R2.x;

DP3 R2, R1, vertex.normal;
SUB R3, 1.0, R2;
MUL R4, R3, R3;
MUL R4, R4, R3;
MUL R4, R4, R3;
MUL R4, R4, R3;

SUB R3, 1.0, program.local[0];

MAD result.texcoord[2].x, R4, R3, program.local[0];

END

!!ARBfp1.0
OPTION ARB_precision_hint_fastest;

TEMP A, C;

MUL A, fragment.position, program.env[1];
TEX C, A, texture[0], 2D;
MOV result.color, C;

MOV result.color.a, fragment.texcoord[2].x;

END


...and here is the material shader: (stectile1quad2 is found in andy.mtr)

Code:
textures/base_floor/stectile1quad2
{
   surftype10 //tile

   qer_editorimage   textures/base_floor/stectile1quad2.tga
   {
      blend      bumpmap         
      map         addnormals (textures/base_floor/stectile1quad2_local.tga, heightmap (textures/base_floor/stectile1quad2_bmp, 4) )
   }
   diffusemap      textures/base_floor/stectile1quad2.tga
   specularmap      textures/base_floor/stectile1quad2_s.tga
   
   {
      blend   blend
      mirrorRenderMap   1024   1024

      translate   0.5, 0.5
      scale      0.5, 0.5

      program   fresnel.vfp
      vertexParm   0   .0100593122
      fragmentMap   0   _scratch

      al



rich_is_bored@Posted: Wed Oct 17, 2007 9:42 am :
It looks pretty good. Kudos.



Zakyrus_theOmega@Posted: Wed Oct 17, 2007 10:03 am :
rich_is_bored wrote:
It looks pretty good. Kudos.


Thanks! :D

Now that that's complete, I am going to delve into the horribly undocumented _cubicLight command and see what I can do with it. I'll post any results here. Wish me luck. 8)



Zakyrus_theOmega@Posted: Tue Jun 19, 2007 10:17 pm :
Anyone know of a quick way to make increase the image quality of the textures? I have a 8800GTX OC 768MB card and the textures could look so much better.

When I mean image quality I am thinking along the lines of "twice as much detail" ...photoshop maybe? Lets say for this example I'll use textures/base_floor/a_bluetex1a_02.tga... Anyone know of any "quick" techniques to make this look 2x better?



Manc@Posted: Tue Jun 19, 2007 11:20 pm :
It doesn't exist. Resizing small textures to a larger size may make the image dimensions larger, but it has to use (at best) advanced bicubic operations to try to "stretch" the detail out. In the end, because the image has to be the same size anyway, it'll get scaled down or it won't tile properly across faces.

So, basically it can't be done with any sort of appreciable quality. Not to mention doing stuff like that to games ruins your ability to do things like play online or work with mods.



Kristus@Posted: Tue Jun 19, 2007 11:20 pm :
Wisp you magic wand you got when you attended Hogwarts over it 5 times while chanting the magic phrase. "ZOMG MORE DETAILZ PLZ"



zenarion@Posted: Thu Jun 21, 2007 2:13 pm :
You could make them yourself if you are ambitious enough.
New normalmaps could be baked or something.



BloodRayne@Posted: Thu Jun 21, 2007 4:48 pm :
The scope of work that it takes to mount a project as big as retexturing Doom3 is vast. In a lucky scenario retexturing one asset takes 20 minutes: This means drawing a diffusemap from scratch, creating a specular map, a localmap and an extra heightmap pass for detail and creating the material decl for it. Realizing that there are over 3200 different texture assets alone in Doom3 (models, geometry, weapons, monsters etc..etc..) makes this a project involving atleast 1066 hours and that's if y'er really lucky.

There are some retexturing projects going on at this moment for Quake 1, Unreal 1 and such other oldies, some have amazingly good results. I'm not expecting any kind of retexturing project for Doom3, considering that it's much more fun to make new assets for a new TC or Mod. Basically you're out of luck here.

You might be able to pull of some batch of photoshop work to sharpen things up a bit, but the quality won't be 'amazing'. Better to look into things like the parallax mapping mod if you want to improve depth and such in the Doom3 textures.

Hope that helps.



Bittoman@Posted: Thu Jun 21, 2007 5:38 pm :
Kristus wrote:
Wisp you magic wand you got when you attended Hogwarts over it 5 times while chanting the magic phrase. "ZOMG MORE DETAILZ PLZ"


Dammit, I just graduated Hogwarts with high OWLS and NEWTS marks and even top of my class in Charms yet they still never taught me this spell :(:D



pbmax@Posted: Thu Jun 21, 2007 6:08 pm :
you could try making a few single super hi res "noise" textures and apply those to each surface by using a fragment shader.

this would make everything look more dirty, but it could also add more detail to it.

but... you'd probably also have to rewrite all the material shaders.



Kristus@Posted: Thu Jun 21, 2007 6:25 pm :
In a game like Doom3, it'd be nice if you could turn off the bilinear filtering on the textures. Not for the organic stuff though, since that wouldn't make sense, but on all those tech panels. really no reason why they should be smooth filtered like that.



Zakyrus_theOmega@Posted: Sat Jun 23, 2007 6:03 pm :
pbmax wrote:
you could try making a few single super hi res "noise" textures and apply those to each surface by using a fragment shader.

this would make everything look more dirty, but it could also add more detail to it.

but... you'd probably also have to rewrite all the material shaders.


I think you may be on to something here. Rewriting each material file (which is time consuming, but much less than speding 20 mins on each texture)

Would it be possible to give me a very quick lowdown on how this is down? (apllying the texture as a fragment ..I am more used to coding/scripting than texture stuff.

Let's say I make a basic "noise" texture, what "text/code" would I include with each material file to make it appear. (Just give me something real basic so I can just get it working - I'll hopefully figure out the rest.)


Thanks a million.



Zakyrus_theOmega@Posted: Sat Sep 15, 2007 7:18 am :
I am in need of assistance by some "game art" gurus:

1. I need help making a mirror effect on stectile surface.

Now, to my understanding RenderMirrorMap int, int is used to do this,
how would I place it in the material so that it creates a mirror in the
reflection of the tiles.


textures/base_floor/stectile1quad2
{
surftype10
qer_editorimage textures/base_floor/stectile1quad2.tga
{
Program heatHaze.vfp
vertexParm 0 time * 0 , time * 0 // texture scrolling
vertexParm 1 .3 // magnitude of the distortion
fragmentProgram heatHaze.vfp
fragmentMap 0 _currentRender
fragmentMap 1 textures/sfx/vp1 // the normal map for distortion
MirrorRenderMap 1024 1024
}
{
blend bumpmap
map addnormals (textures/base_floor/stectile1quad2_local.tga, heightmap (textures/base_floor/stectile1quad2_bmp, 4) )
}
diffusemap textures/base_floor/stectile1quad2.tga
specularmap textures/base_floor/stectile1quad2_s.tga

}


I tried the above code, but I can only get as far as seeing a mirror that shows below the level (even nearby rooms are shown in the mirror that shouldn't be there) Also, the mirror glitches when moving the view around. I can add a screenshot if desired. I tried the command "mirror" which reflects flawlessly but can't have layers added/blended (at least to my knowledge)

Also, I want to add a fragment program (heathaze) that layers only on the
mirror stage (not the tiles stage). (which would give a warping effect to the reflection) is this possible
or am I dreaming?

It it possible to make the mirror work perfectly on the tiles while having the heathaze.vfp ONLY affect the reflection (not the tiles themselves).

2. I created light effect; firecaustics
Basically, this is just another light that creates an animating fire effect on surfaces.
(actually I combined this so all roundfire1 & 2 use a variation of this too)

lights/firecaustics
{
{
forceHighQuality
map lights/lavacaustics.tga
colored
translate time * .02 , time * .02
//rgb storm2table[ time * .1 ]

}
}


Now, when the light is projected on the ceiling or floor it looks awesome. When on a wall however, it gets that
"Doom3 light stretch effect" - any quick fix to this? I want the Faked Caustics to project evenly along all surfaces without "stretching".

Please help me resolve this.



rich_is_bored@Posted: Sat Sep 15, 2007 11:14 am :
First, you're trying to make use of two image maps in a single stage. The one produced by a fragment program and the one produced by mirrorrendermap.

You can't do that. Each stage in a material shader can only make use of a single image.

Second, fragment programs have a limited scope in id Tech 4 games. They can only manipulate image data stored in buffers like _currentrender, _scratch, ect...

I believe mirrorrendermap stores it's image data in _scratch so you may have some luck passing that to the fragment program but expect buggy results. IMHO, the results of mirrorrendermap are garbage as is and heathaze was built with the intention of distorting the current render.

Outside of the general purpose distortion effect that heathaze provides, there isn't much you can do in the way of image manipulation. You're pretty much limited to color, scale, shear, translational, and rotational adjustments.

IMHO, you're much better off with an environment map. You won't get the 100% accurate realtime reflections you're after but they make use of the normal map stage so distortion will come naturally.

As for subtle distortion, just add a very subtle cloud-like height map to your normal map stage. You can decrease the intensity in the material shader to the point where it has no visible effect on the tiles themselves but it will produce an impact on the reflection of your environment map.

The projected lights in idTech 4 games suck. They should use cube maps but they don't. Instead they literally project an image along the z axis (up/down) and the result is as you describe, stretching on the walls.

There is no fix short of using spotlights so you don't have to concern yourself with the sides.

I'm going off on a tangent here but der_ton made a pretty cool demo based on his model viewer that demonstrates what the game would look like with proper cube map lights although I don't know if it's still available.



Zakyrus_theOmega@Posted: Sat Sep 15, 2007 11:28 am :
Thanks for the response!

That sucks. The "mirror" itself works flawlessly (ofcourse overpowering all layer effects the stectile looks like it's made of Mercury), but the MirrorRenderMap IS totally gay. I probably piddle around with the MirrorRenderMap a little longer before I go with the env/map idea. (Damn, I can totally handle the realtime reflections too...) I can get the MirrorRenderMap to look very close (with the 'garbage' of other floors) I'll post back on this either method I try.

Damn lack of cubemap lighting! Grrr! id taunts me with their Renderer SDK which is sealed in 1,000 vaults. So I'm pretty much stuck with "low-level" caustics - which is ok, because I'm sure I can fake the effect so that stretching will make the "caustic" look better. Where there's a will, there's a way.

So... I'm pretty much screwed in both cases until id releases their Doom3 renderer code (ack! foiled again! RAGE needs to be released sooner.. hehe)

EDIT:
Oh, and one more thing... If I want to add falloff to all lights in Doom3 by changing the .mtr files.

Let's say I do this:
lights/biground1
{
lightFalloffImage makeintensity( lights/squarelight1a.tga )
{
forceHighQuality
map lights/biground1.tga
colored
zeroClamp
}
}

which is better, that or this:

lights/biground1
{
{
forceHighQuality
map lights/biground1.tga
colored
zeroClamp
}
{
forceHighQuality
map lights/biground1.tga
colored
scale 1.5, 1.5
zeroClamp
//then add some alpha intensity to make the second layer more transparent...
//if so what do I put here?
}
}

Which method would be better to add "Faked" and increased falloff.



rich_is_bored@Posted: Sun Sep 16, 2007 6:05 am :
I'm not sure I'm following you. What do you mean by increased falloff?

Technically you can increase the falloff of a light by shrinking it's volume.



Zakyrus_theOmega@Posted: Sun Sep 16, 2007 6:12 am :
rich_is_bored wrote:
I'm not sure I'm following you. What do you mean by increased falloff?

Technically you can increase the falloff of a light by shrinking it's volume.


Ok, "falloff" is the wrong word. Let's say, I want to duplicate the stage of light, then scale the light 1.5 times larger, then in the duplicated light stage -- increase the amount of translucency (so the light has a more intense part, then fades to a lesser intensity/greater radii)



rich_is_bored@Posted: Sun Sep 16, 2007 10:21 am :
Overbright lights perhaps?

http://www.katsbits.com/htm/tutorials/q ... =&ucat=13&



Zakyrus_theOmega@Posted: Sun Sep 16, 2007 10:31 am :
rich_is_bored wrote:
Overbright lights perhaps?

http://www.katsbits.com/htm/tutorials/q ... =&ucat=13&


:mrgreen:
Thank you so much this is EXACTLY what I am talking about. Thanks again!



Zakyrus_theOmega@Posted: Wed Oct 17, 2007 5:56 am :
As for the mirrorRenderMap command, I got something that works pretty well.

On searching various places on modwiki, I found this site:
http://www.modwiki.net/wiki/How_to_add_water

I used the Fresnel.vfp found there:
Code:
!!ARBvp1.0
OPTION ARB_position_invariant;

TEMP R1, R2, R3, R4;

SUB R1, program.env[5], vertex.position;
DP3 R2, R1, R1;
RSQ R2, R2.x;
MUL R1, R1, R2.x;

DP3 R2, R1, vertex.normal;
SUB R3, 1.0, R2;
MUL R4, R3, R3;
MUL R4, R4, R3;
MUL R4, R4, R3;
MUL R4, R4, R3;

SUB R3, 1.0, program.local[0];

MAD result.texcoord[2].x, R4, R3, program.local[0];

END

!!ARBfp1.0
OPTION ARB_precision_hint_fastest;

TEMP A, C;

MUL A, fragment.position, program.env[1];
TEX C, A, texture[0], 2D;
MOV result.color, C;

MOV result.color.a, fragment.texcoord[2].x;

END


...and here is the material shader: (stectile1quad2 is found in andy.mtr)

Code:
textures/base_floor/stectile1quad2
{
   surftype10 //tile

   qer_editorimage   textures/base_floor/stectile1quad2.tga
   {
      blend      bumpmap         
      map         addnormals (textures/base_floor/stectile1quad2_local.tga, heightmap (textures/base_floor/stectile1quad2_bmp, 4) )
   }
   diffusemap      textures/base_floor/stectile1quad2.tga
   specularmap      textures/base_floor/stectile1quad2_s.tga
   
   {
      blend   blend
      mirrorRenderMap   1024   1024

      translate   0.5, 0.5
      scale      0.5, 0.5

      program   fresnel.vfp
      vertexParm   0   .0100593122
      fragmentMap   0   _scratch

      al



Zakyrus_theOmega@Posted: Tue Jun 19, 2007 10:17 pm :
Anyone know of a quick way to make increase the image quality of the textures? I have a 8800GTX OC 768MB card and the textures could look so much better.

When I mean image quality I am thinking along the lines of "twice as much detail" ...photoshop maybe? Lets say for this example I'll use textures/base_floor/a_bluetex1a_02.tga... Anyone know of any "quick" techniques to make this look 2x better?



Manc@Posted: Tue Jun 19, 2007 11:20 pm :
It doesn't exist. Resizing small textures to a larger size may make the image dimensions larger, but it has to use (at best) advanced bicubic operations to try to "stretch" the detail out. In the end, because the image has to be the same size anyway, it'll get scaled down or it won't tile properly across faces.

So, basically it can't be done with any sort of appreciable quality. Not to mention doing stuff like that to games ruins your ability to do things like play online or work with mods.



Kristus@Posted: Tue Jun 19, 2007 11:20 pm :
Wisp you magic wand you got when you attended Hogwarts over it 5 times while chanting the magic phrase. "ZOMG MORE DETAILZ PLZ"



zenarion@Posted: Thu Jun 21, 2007 2:13 pm :
You could make them yourself if you are ambitious enough.
New normalmaps could be baked or something.



BloodRayne@Posted: Thu Jun 21, 2007 4:48 pm :
The scope of work that it takes to mount a project as big as retexturing Doom3 is vast. In a lucky scenario retexturing one asset takes 20 minutes: This means drawing a diffusemap from scratch, creating a specular map, a localmap and an extra heightmap pass for detail and creating the material decl for it. Realizing that there are over 3200 different texture assets alone in Doom3 (models, geometry, weapons, monsters etc..etc..) makes this a project involving atleast 1066 hours and that's if y'er really lucky.

There are some retexturing projects going on at this moment for Quake 1, Unreal 1 and such other oldies, some have amazingly good results. I'm not expecting any kind of retexturing project for Doom3, considering that it's much more fun to make new assets for a new TC or Mod. Basically you're out of luck here.

You might be able to pull of some batch of photoshop work to sharpen things up a bit, but the quality won't be 'amazing'. Better to look into things like the parallax mapping mod if you want to improve depth and such in the Doom3 textures.

Hope that helps.



Bittoman@Posted: Thu Jun 21, 2007 5:38 pm :
Kristus wrote:
Wisp you magic wand you got when you attended Hogwarts over it 5 times while chanting the magic phrase. "ZOMG MORE DETAILZ PLZ"


Dammit, I just graduated Hogwarts with high OWLS and NEWTS marks and even top of my class in Charms yet they still never taught me this spell :(:D



pbmax@Posted: Thu Jun 21, 2007 6:08 pm :
you could try making a few single super hi res "noise" textures and apply those to each surface by using a fragment shader.

this would make everything look more dirty, but it could also add more detail to it.

but... you'd probably also have to rewrite all the material shaders.



Kristus@Posted: Thu Jun 21, 2007 6:25 pm :
In a game like Doom3, it'd be nice if you could turn off the bilinear filtering on the textures. Not for the organic stuff though, since that wouldn't make sense, but on all those tech panels. really no reason why they should be smooth filtered like that.



Zakyrus_theOmega@Posted: Sat Jun 23, 2007 6:03 pm :
pbmax wrote:
you could try making a few single super hi res "noise" textures and apply those to each surface by using a fragment shader.

this would make everything look more dirty, but it could also add more detail to it.

but... you'd probably also have to rewrite all the material shaders.


I think you may be on to something here. Rewriting each material file (which is time consuming, but much less than speding 20 mins on each texture)

Would it be possible to give me a very quick lowdown on how this is down? (apllying the texture as a fragment ..I am more used to coding/scripting than texture stuff.

Let's say I make a basic "noise" texture, what "text/code" would I include with each material file to make it appear. (Just give me something real basic so I can just get it working - I'll hopefully figure out the rest.)


Thanks a million.



Zakyrus_theOmega@Posted: Sat Sep 15, 2007 7:18 am :
I am in need of assistance by some "game art" gurus:

1. I need help making a mirror effect on stectile surface.

Now, to my understanding RenderMirrorMap int, int is used to do this,
how would I place it in the material so that it creates a mirror in the
reflection of the tiles.


textures/base_floor/stectile1quad2
{
surftype10
qer_editorimage textures/base_floor/stectile1quad2.tga
{
Program heatHaze.vfp
vertexParm 0 time * 0 , time * 0 // texture scrolling
vertexParm 1 .3 // magnitude of the distortion
fragmentProgram heatHaze.vfp
fragmentMap 0 _currentRender
fragmentMap 1 textures/sfx/vp1 // the normal map for distortion
MirrorRenderMap 1024 1024
}
{
blend bumpmap
map addnormals (textures/base_floor/stectile1quad2_local.tga, heightmap (textures/base_floor/stectile1quad2_bmp, 4) )
}
diffusemap textures/base_floor/stectile1quad2.tga
specularmap textures/base_floor/stectile1quad2_s.tga

}


I tried the above code, but I can only get as far as seeing a mirror that shows below the level (even nearby rooms are shown in the mirror that shouldn't be there) Also, the mirror glitches when moving the view around. I can add a screenshot if desired. I tried the command "mirror" which reflects flawlessly but can't have layers added/blended (at least to my knowledge)

Also, I want to add a fragment program (heathaze) that layers only on the
mirror stage (not the tiles stage). (which would give a warping effect to the reflection) is this possible
or am I dreaming?

It it possible to make the mirror work perfectly on the tiles while having the heathaze.vfp ONLY affect the reflection (not the tiles themselves).

2. I created light effect; firecaustics
Basically, this is just another light that creates an animating fire effect on surfaces.
(actually I combined this so all roundfire1 & 2 use a variation of this too)

lights/firecaustics
{
{
forceHighQuality
map lights/lavacaustics.tga
colored
translate time * .02 , time * .02
//rgb storm2table[ time * .1 ]

}
}


Now, when the light is projected on the ceiling or floor it looks awesome. When on a wall however, it gets that
"Doom3 light stretch effect" - any quick fix to this? I want the Faked Caustics to project evenly along all surfaces without "stretching".

Please help me resolve this.



rich_is_bored@Posted: Sat Sep 15, 2007 11:14 am :
First, you're trying to make use of two image maps in a single stage. The one produced by a fragment program and the one produced by mirrorrendermap.

You can't do that. Each stage in a material shader can only make use of a single image.

Second, fragment programs have a limited scope in id Tech 4 games. They can only manipulate image data stored in buffers like _currentrender, _scratch, ect...

I believe mirrorrendermap stores it's image data in _scratch so you may have some luck passing that to the fragment program but expect buggy results. IMHO, the results of mirrorrendermap are garbage as is and heathaze was built with the intention of distorting the current render.

Outside of the general purpose distortion effect that heathaze provides, there isn't much you can do in the way of image manipulation. You're pretty much limited to color, scale, shear, translational, and rotational adjustments.

IMHO, you're much better off with an environment map. You won't get the 100% accurate realtime reflections you're after but they make use of the normal map stage so distortion will come naturally.

As for subtle distortion, just add a very subtle cloud-like height map to your normal map stage. You can decrease the intensity in the material shader to the point where it has no visible effect on the tiles themselves but it will produce an impact on the reflection of your environment map.

The projected lights in idTech 4 games suck. They should use cube maps but they don't. Instead they literally project an image along the z axis (up/down) and the result is as you describe, stretching on the walls.

There is no fix short of using spotlights so you don't have to concern yourself with the sides.

I'm going off on a tangent here but der_ton made a pretty cool demo based on his model viewer that demonstrates what the game would look like with proper cube map lights although I don't know if it's still available.



Zakyrus_theOmega@Posted: Sat Sep 15, 2007 11:28 am :
Thanks for the response!

That sucks. The "mirror" itself works flawlessly (ofcourse overpowering all layer effects the stectile looks like it's made of Mercury), but the MirrorRenderMap IS totally gay. I probably piddle around with the MirrorRenderMap a little longer before I go with the env/map idea. (Damn, I can totally handle the realtime reflections too...) I can get the MirrorRenderMap to look very close (with the 'garbage' of other floors) I'll post back on this either method I try.

Damn lack of cubemap lighting! Grrr! id taunts me with their Renderer SDK which is sealed in 1,000 vaults. So I'm pretty much stuck with "low-level" caustics - which is ok, because I'm sure I can fake the effect so that stretching will make the "caustic" look better. Where there's a will, there's a way.

So... I'm pretty much screwed in both cases until id releases their Doom3 renderer code (ack! foiled again! RAGE needs to be released sooner.. hehe)

EDIT:
Oh, and one more thing... If I want to add falloff to all lights in Doom3 by changing the .mtr files.

Let's say I do this:
lights/biground1
{
lightFalloffImage makeintensity( lights/squarelight1a.tga )
{
forceHighQuality
map lights/biground1.tga
colored
zeroClamp
}
}

which is better, that or this:

lights/biground1
{
{
forceHighQuality
map lights/biground1.tga
colored
zeroClamp
}
{
forceHighQuality
map lights/biground1.tga
colored
scale 1.5, 1.5
zeroClamp
//then add some alpha intensity to make the second layer more transparent...
//if so what do I put here?
}
}

Which method would be better to add "Faked" and increased falloff.



rich_is_bored@Posted: Sun Sep 16, 2007 6:05 am :
I'm not sure I'm following you. What do you mean by increased falloff?

Technically you can increase the falloff of a light by shrinking it's volume.



Zakyrus_theOmega@Posted: Sun Sep 16, 2007 6:12 am :
rich_is_bored wrote:
I'm not sure I'm following you. What do you mean by increased falloff?

Technically you can increase the falloff of a light by shrinking it's volume.


Ok, "falloff" is the wrong word. Let's say, I want to duplicate the stage of light, then scale the light 1.5 times larger, then in the duplicated light stage -- increase the amount of translucency (so the light has a more intense part, then fades to a lesser intensity/greater radii)



rich_is_bored@Posted: Sun Sep 16, 2007 10:21 am :
Overbright lights perhaps?

http://www.katsbits.com/htm/tutorials/q ... =&ucat=13&



Zakyrus_theOmega@Posted: Sun Sep 16, 2007 10:31 am :
rich_is_bored wrote:
Overbright lights perhaps?

http://www.katsbits.com/htm/tutorials/q ... =&ucat=13&


:mrgreen:
Thank you so much this is EXACTLY what I am talking about. Thanks again!



Zakyrus_theOmega@Posted: Wed Oct 17, 2007 5:56 am :
As for the mirrorRenderMap command, I got something that works pretty well.

On searching various places on modwiki, I found this site:
http://www.modwiki.net/wiki/How_to_add_water

I used the Fresnel.vfp found there:
Code:
!!ARBvp1.0
OPTION ARB_position_invariant;

TEMP R1, R2, R3, R4;

SUB R1, program.env[5], vertex.position;
DP3 R2, R1, R1;
RSQ R2, R2.x;
MUL R1, R1, R2.x;

DP3 R2, R1, vertex.normal;
SUB R3, 1.0, R2;
MUL R4, R3, R3;
MUL R4, R4, R3;
MUL R4, R4, R3;
MUL R4, R4, R3;

SUB R3, 1.0, program.local[0];

MAD result.texcoord[2].x, R4, R3, program.local[0];

END

!!ARBfp1.0
OPTION ARB_precision_hint_fastest;

TEMP A, C;

MUL A, fragment.position, program.env[1];
TEX C, A, texture[0], 2D;
MOV result.color, C;

MOV result.color.a, fragment.texcoord[2].x;

END


...and here is the material shader: (stectile1quad2 is found in andy.mtr)

Code:
textures/base_floor/stectile1quad2
{
   surftype10 //tile

   qer_editorimage   textures/base_floor/stectile1quad2.tga
   {
      blend      bumpmap         
      map         addnormals (textures/base_floor/stectile1quad2_local.tga, heightmap (textures/base_floor/stectile1quad2_bmp, 4) )
   }
   diffusemap      textures/base_floor/stectile1quad2.tga
   specularmap      textures/base_floor/stectile1quad2_s.tga
   
   {
      blend   blend
      mirrorRenderMap   1024   1024

      translate   0.5, 0.5
      scale      0.5, 0.5

      program   fresnel.vfp
      vertexParm   0   .0100593122
      fragmentMap   0   _scratch

      alpha      0.6
   }
}



While this effect is not perfect (you still sometimes see a few things that don't look right), it looks good 95% of the time. (sometimes you'll still see a sliver of the next room or a few things that shouldn't be mirrored) BUT, if you don't stare at the floor it ALYWAYS looks good!

Image

Now.... my next "quest" is to figure out what that damn _cubicLight command does so I can document it. :)



rich_is_bored@Posted: Wed Oct 17, 2007 7:57 am :
There's distortion going on there? I have my doubts but perhaps it's more noticeable in motion.

Would it be possible for you to show a screen shot with the distortion cranked up?



Zakyrus_theOmega@Posted: Wed Oct 17, 2007 8:13 am :
rich_is_bored wrote:
There's distortion going on there? I have my doubts but perhaps it's more noticeable in motion.

Would it be possible for you to show a screen shot with the distortion cranked up?


Oh my bad. I forgot to mention I haven't added it yet. :oops:
I was too busy being enthralled that I actually got the tiles to reflect without looking totally gay.
I'm going to experiment with variations, as soon as I get that stage working I'll post some more (and better) pics.



Zakyrus_theOmega@Posted: Wed Oct 17, 2007 9:23 am :
Here it is! Realtime reflections with blur. It's actually kind of sad that the solution was much simpler than I thought.

I included a few screenies so that you can tell that there is indeed some blur with the reflections.

Here's the goods:
Image
Image
Image
Image


What did I do? Simply reduced the mirrorRenderMap resolution down to 128 rather than 1024.
This is a somewhat "cheapened" and "less conventional" method (that is, using low-res pixelation to my advantage), but hey, most artists have to know that faking an effect is sometimes almost as good as doing it another (and more complicated) method. There is a vast difference between spending 10 years doing one effect and comprimising when it is "good enough".