jmarshall23@Posted: Fri Nov 02, 2012 5:55 am :
Attachment:
megatexture_r3_1.png [ 1.27 MB | Viewed 434 times ]
Video:
http://www.youtube.com/watch?v=eqmWeZmi ... e=youtu.beDownload(binary + megatexture + source code):
http://www.gamefront.com/files/22586803 ... lic_v2_rarMegaProject files:
http://www.gamefront.com/files/22586897 ... roject.rarI was going to make this a tutorial but it would be too long of one because everything required ALOT of changes. To install drag and drop into your doom 3 folder, this is fully compatible with Sikkmod.
Features:
MegaTexture clip levels are now 2048(was 512), which allows for the detail required for Quake Wars terrain dimensions. The surrounding pixels around the player will be way more detailed, as evident in the screenshots.
The old code blitted each clip level to different texture, and in realtime generated the mipmaps for those levels. The new code blits to ONE texture and blits each clip level to that textures mipmap. Which gives a huge speed boost required for blitting 2048x2048 clip levels.
Megatexture's can now have realtime lightning and bump mapping on them.
MegaGen now generates mega local maps(specular is in the r channel, and the local r channel is in the alpha).
Speed up megagen by 10%.
MegaLevel's are now stored in seperate files a long with the clipmap.
No longer based off the Tron's/AO's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
BUGS:
There is a bug were the stuff that is far far far far away renders black, I just noticed it now I'll fix it in the next release.
Terrain self shadowing looks horrible because of stencil shadows I'll drop in shadow mapping from idtech 4 cdk when I can.
Building a megatexture
Edit or create your own megaproject(look at the sample for how to setup the project).
Run Doom 3 open the console and type megagen <megaproject> you build your megaraw and megalocal files.
makemegatexture <megaproject>
Time to build a megatexture, makemegatexture takes my computer about 7 minutes and megagen takes about 6 for a 32768x32768 megatexture.
jmarshall23@Posted: Fri Nov 02, 2012 3:19 pm : Opps forgot the material :/.
Make a new material called megatextures.mtr, this one also takes out the self shadow for the terrain.
Code:
megatexture/planar_valley
{
solid
cmTwoSided
noShadows
qer_editorimage megatextures\valley_preview.tga
{
megatexture valley.mega
}
}
//
textures/megatexture/grass_01
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage1.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage1.tga
alphatest .4
}
}
textures/megatexture/grass_02
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage2.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage2.tga
alphatest .4
}
}
textures/megatexture/grass_03
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage3.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage3.tga
alphatest .4
}
}
textures/megatexture/tron_grass
{
//noselfshadow
noshadows
nonsolid
twosided
qer_editorimage textures/vegetation/tron_grass.tga
//{
// blend add
// map textures/vegetation/tron_grass.tga
// alphatest .5
//}
{
blend GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
map textures/vegetation/tron_grass.tga
//alphatest .9
scale 2,1
rgb .9
}
}
textures/megatexture/tron_tall_grass
{
//noselfshadow
noshadows
nonsolid
twosided
qer_editorimage textures/vegetation/tron_tall_grass.tga
//{
// blend add
// map textures/vegetation/tron_grass.tga
// alphatest .5
//}
{
//blend diffusemap
blend GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
map textures/vegetation/tron_tall_grass.tga
alphatest .65
}
}
textures/megatexture/tron_bark
{
//noselfshadow
noshadows
nonsolid
//twosided
qer_editorimage textures/vegetation/tron_bark_diffuse.tga
diffusemap textures/vegetation/tron_bark_diffuse.tga
bumpmap textures/vegetation/tron_bark_local.tga
}
textures/megatexture/tron_wall_mossy_large
{
//noselfshadow
//noshadows
//nonsolid
twosided
qer_editorimage textures/structures/brick_wall_moss_bottom.tga
diffusemap textures/structures/brick_wall_moss_bottom.tga
bumpmap textures/structures/brick_wall_moss_bottom_local.tga
}
textures/megatexture/tron_stone_wall
{
//noselfshadow
//noshadows
//nonsolid
twosided
qer_editorimage textures/structures/stone_wall_smaller.tga
diffusemap textures/structures/stone_wall.tga
bumpmap textures/structures/stone_wall_local.tga
//diffusemap textures/structures/stone_wall_smaller.tga
//bumpmap textures/structures/stone_wall_local_smaller.tga
}
textures/megatexture/tron_wood_brick_wall
{
qer_editorimage textures/structures/wood_brick_wall_smaller.tga
//diffusemap textures/structures/wood_brick_wall.tga
//bumpmap textures/structures/wood_brick_wall_local.tga
diffusemap textures/structures/wood_brick_wall_smaller.tga
bumpmap textures/structures/wood_brick_wall_local_smaller.tga
}
textures/megatexture/valley_water
{
qer_EditorImage textures/pbmax/water1_local.tga
{
//mirrorRenderMap 128 128 // size of the texture to draw the mirror view in
blend blend
alpha 0 //100% reflective, 0% transparent
translate 0.5, 0.5
rotate 0.5
scale 5, 5
program fresnel_water_pixel.vfp //shader program
vertexParm 0 time * 0.008 , time * 0.0 //scroll
vertexParm 1 10 //magnitude
fragmentMap 0 env\mega_up.tga //the mirror/reflection image
fragmentMap 1 textures/hell/clouds_local.tga //normal map for distortion & "per pixel" fresnel
}
}
Dashiva@Posted: Sat Nov 03, 2012 8:49 am : Cool. I will definitely give this a crack and post results.
One question, that is slightly unrelated. Does your CDK have global illumination?
jmarshall23@Posted: Sat Nov 03, 2012 9:07 am : Yes I was using beast but later got in realtime GI using the unreal 4 voxel method, it's slow as shit though.
Mr.Spline@Posted: Sat Nov 03, 2012 7:08 pm : Ooh beast, nice! So I guess that's gone now or will that make a come back? Also awesome job here on the megastuff it's cool beans.
Dashiva@Posted: Sat Nov 03, 2012 9:04 pm : The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
jmarshall23@Posted: Sat Nov 03, 2012 9:17 pm : Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
I'm focusing on a 100% realtime engine rather than baking everything, as the next gen tech will focus on interaction time rather than prettier graphics, so I'm moving away from things that can add to interation time.
Dashiva@Posted: Sat Nov 03, 2012 10:36 pm : Yeah, rebuilding lighting in UDK is like watching paint dry. Over and over. And over. The question is, if the UE 4 voxel lighting is too expensive, what are you going to go with? Cryengine-esque deferred lighting?
Mr.Spline@Posted: Sat Nov 03, 2012 11:41 pm : Yea, on second thought if a RT solution can run fast enough and scale well I'll change my answer. Perhaps, I'll feel differently once I drop my 8800 for something faster although I'll probably just end up with a 560 so no idea if even that would be good enough. Keeping in mind that anything using CDK will likely be at least a year after your first solid release so by then most people should have pretty good hardware anyway.
I just... I guess I just have to learn to let go of light maps... my little safety net for horrifically placed lights.
Dashiva@Posted: Sun Nov 04, 2012 12:00 am : Cryengine 3 does it really well, no lightmaps or anything.
jmarshall23@Posted: Sun Nov 04, 2012 12:24 am : Dashiva wrote:
Cryengine 3 does it really well, no lightmaps or anything.
CryEngine 3 does a lot of things very well, aside from being at a price point that developers are able to afford
.
Quote:
Yeah, rebuilding lighting in UDK is like watching paint dry. Over and over. And over. The question is, if the UE 4 voxel lighting is too expensive, what are you going to go with? Cryengine-esque deferred lighting?
I was thinking of maybe light propagation volumes
http://www6.incrysis.com/Light_Propagation_Volumes.pdf Quote:
I just... I guess I just have to learn to let go of light maps... my little safety net for horrifically placed lights.
F*cking artists
.
Personally I don't have a problem forcing developers to be on high end hardware, because games now a days average 4+ years to make and a substantial amount of whatever your target audience is, will have good enough hardware to do all this stuff in realtime.
Dashiva@Posted: Sun Nov 04, 2012 6:50 am : http://imgur.com/doz5cSeems to fail on shader compile or something.
Tr3B@Posted: Sun Nov 04, 2012 12:09 pm : Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
It has a nice feature list but Sauerbraten and Tesseract have an extremely poor code quality. I've read open source engines for 12 years now and those are actually the worst.
So if you want to make a game and look for some programmers then you should rather make a big step away from those.
I'm really looking forward for the CDK by Justin. His stuff is very nice. There will be also some nice open engine upgrades by me once I will complete my game.
I also have experience with the Cryengine, UDK and Unity 3D. If you want to create a game wether commercially or for free then I recommend to learn Doom 3 inside out.
You can do pretty much everything you want with it unlike with the others.
Dashiva@Posted: Sun Nov 04, 2012 8:49 pm : Tr3B wrote:
Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
It has a nice feature list but Sauerbraten and Tesseract have an extremely poor code quality. I've read open source engines for 12 years now and those are actually the worst.
So if you want to make a game and look for some programmers then you should rather make a big step away from those.
Yah, I was just referring to it as another example of realtime GI. The cube engines lack any sort of modern art pipeline, I wouldn't use them for anything.
Anyway, anyone get this to work yet? I tried again but it comes up with the same shader compile bug.
Tron@Posted: Mon Nov 05, 2012 4:18 am : jmarshall23 wrote:
No longer based off the Tron's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
Don't credit me for that, all AO's fantastic work!
jmarshall23@Posted: Mon Nov 05, 2012 6:58 am : Tron wrote:
jmarshall23 wrote:
No longer based off the Tron's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
Don't credit me for that, all AO's fantastic work!
Edited the topic, it was great work done by you guys none the less.
. Carmacks original shader just was slightly faster and yielded a slight slight visual increase, so there wasn't that much of a difference you guys did a good job. The speed boost/quality increase came from increasing the clip level size to 2048, and instead of having a levelsizexlevelsize texture for each level, I switched it over to one texture and uploaded the miplevels required for each miplevel, rather than the old implementation for uploading the entire level(even though it technically was 1/4 size of the original but it still filled up the entire texture space), and than the old code generated mipmaps on the fly which obviously had to go.
That mixed with dxt5 compression and realtime lighting makes megatextures usable. Stencil shadows just obviously have to go which I'm pretty close to finishing up the tutorial on.
Tron@Posted: Mon Nov 05, 2012 7:45 am : It's amazing progress you've made, potential for some really nice looking terrain now.
jmarshall23@Posted: Fri Nov 02, 2012 5:55 am : Attachment:
megatexture_r3_1.png [ 1.27 MB | Viewed 434 times ]
Video:
http://www.youtube.com/watch?v=eqmWeZmi ... e=youtu.beDownload(binary + megatexture + source code):
http://www.gamefront.com/files/22586803 ... lic_v2_rarMegaProject files:
http://www.gamefront.com/files/22586897 ... roject.rarI was going to make this a tutorial but it would be too long of one because everything required ALOT of changes. To install drag and drop into your doom 3 folder, this is fully compatible with Sikkmod.
Features:
MegaTexture clip levels are now 2048(was 512), which allows for the detail required for Quake Wars terrain dimensions. The surrounding pixels around the player will be way more detailed, as evident in the screenshots.
The old code blitted each clip level to different texture, and in realtime generated the mipmaps for those levels. The new code blits to ONE texture and blits each clip level to that textures mipmap. Which gives a huge speed boost required for blitting 2048x2048 clip levels.
Megatexture's can now have realtime lightning and bump mapping on them.
MegaGen now generates mega local maps(specular is in the r channel, and the local r channel is in the alpha).
Speed up megagen by 10%.
MegaLevel's are now stored in seperate files a long with the clipmap.
No longer based off the Tron's/AO's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
BUGS:
There is a bug were the stuff that is far far far far away renders black, I just noticed it now I'll fix it in the next release.
Terrain self shadowing looks horrible because of stencil shadows I'll drop in shadow mapping from idtech 4 cdk when I can.
Building a megatexture
Edit or create your own megaproject(look at the sample for how to setup the project).
Run Doom 3 open the console and type megagen <megaproject> you build your megaraw and megalocal files.
makemegatexture <megaproject>
Time to build a megatexture, makemegatexture takes my computer about 7 minutes and megagen takes about 6 for a 32768x32768 megatexture.
jmarshall23@Posted: Fri Nov 02, 2012 3:19 pm : Opps forgot the material :/.
Make a new material called megatextures.mtr, this one also takes out the self shadow for the terrain.
Code:
megatexture/planar_valley
{
solid
cmTwoSided
noShadows
qer_editorimage megatextures\valley_preview.tga
{
megatexture valley.mega
}
}
//
textures/megatexture/grass_01
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage1.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage1.tga
alphatest .4
}
}
textures/megatexture/grass_02
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage2.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage2.tga
alphatest .4
}
}
textures/megatexture/grass_03
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage3.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage3.tga
alphatest .4
}
}
textures/megatexture/tron_grass
{
//noselfshadow
noshadows
nonsolid
twosided
qer_editorimage textures/vegetation/tron_grass.tga
//{
// blend add
// map textures/vegetation/tron_grass.tga
// alphatest .5
//}
{
blend GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
map textures/vegetation/tron_grass.tga
//alphatest .9
scale 2,1
rgb .9
}
}
textures/megatexture/tron_tall_grass
{
//noselfshadow
noshadows
nonsolid
twosided
qer_editorimage textures/vegetation/tron_tall_grass.tga
//{
// blend add
// map textures/vegetation/tron_grass.tga
// alphatest .5
//}
{
//blend diffusemap
blend GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
map textures/vegetation/tron_tall_grass.tga
alphatest .65
}
}
textures/megatexture/tron_bark
{
//noselfshadow
noshadows
nonsolid
//twosided
qer_editorimage textures/vegetation/tron_bark_diffuse.tga
diffusemap textures/vegetation/tron_bark_diffuse.tga
bumpmap textures/vegetation/tron_bark_local.tga
}
textures/megatexture/tron_wall_mossy_large
{
//noselfshadow
//noshadows
//nonsolid
twosided
qer_editorimage textures/structures/brick_wall_moss_bottom.tga
diffusemap textures/structures/brick_wall_moss_bottom.tga
bumpmap textures/structures/brick_wall_moss_bottom_local.tga
}
textures/megatexture/tron_stone_wall
{
//noselfshadow
//noshadows
//nonsolid
twosided
qer_editorimage textures/structures/stone_wall_smaller.tga
diffusemap textures/structures/stone_wall.tga
bumpmap textures/structures/stone_wall_local.tga
//diffusemap textures/structures/stone_wall_smaller.tga
//bumpmap textures/structures/stone_wall_local_smaller.tga
}
textures/megatexture/tron_wood_brick_wall
{
qer_editorimage textures/structures/wood_brick_wall_smaller.tga
//diffusemap textures/structures/wood_brick_wall.tga
//bumpmap textures/structures/wood_brick_wall_local.tga
diffusemap textures/structures/wood_brick_wall_smaller.tga
bumpmap textures/structures/wood_brick_wall_local_smaller.tga
}
textures/megatexture/valley_water
{
qer_EditorImage textures/pbmax/water1_local.tga
{
//mirrorRenderMap 128 128 // size of the texture to draw the mirror view in
blend blend
alpha 0 //100% reflective, 0% transparent
translate 0.5, 0.5
rotate 0.5
scale 5, 5
program fresnel_water_pixel.vfp //shader program
vertexParm 0 time * 0.008 , time * 0.0 //scroll
vertexParm 1 10 //magnitude
fragmentMap 0 env\mega_up.tga //the mirror/reflection image
fragmentMap 1 textures/hell/clouds_local.tga //normal map for distortion & "per pixel" fresnel
}
}
Dashiva@Posted: Sat Nov 03, 2012 8:49 am : Cool. I will definitely give this a crack and post results.
One question, that is slightly unrelated. Does your CDK have global illumination?
jmarshall23@Posted: Sat Nov 03, 2012 9:07 am : Yes I was using beast but later got in realtime GI using the unreal 4 voxel method, it's slow as shit though.
Mr.Spline@Posted: Sat Nov 03, 2012 7:08 pm : Ooh beast, nice! So I guess that's gone now or will that make a come back? Also awesome job here on the megastuff it's cool beans.
Dashiva@Posted: Sat Nov 03, 2012 9:04 pm : The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
jmarshall23@Posted: Sat Nov 03, 2012 9:17 pm : Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
I'm focusing on a 100% realtime engine rather than baking everything, as the next gen tech will focus on interaction time rather than prettier graphics, so I'm moving away from things that can add to interation time.
Dashiva@Posted: Sat Nov 03, 2012 10:36 pm : Yeah, rebuilding lighting in UDK is like watching paint dry. Over and over. And over. The question is, if the UE 4 voxel lighting is too expensive, what are you going to go with? Cryengine-esque deferred lighting?
Mr.Spline@Posted: Sat Nov 03, 2012 11:41 pm : Yea, on second thought if a RT solution can run fast enough and scale well I'll change my answer. Perhaps, I'll feel differently once I drop my 8800 for something faster although I'll probably just end up with a 560 so no idea if even that would be good enough. Keeping in mind that anything using CDK will likely be at least a year after your first solid release so by then most people should have pretty good hardware anyway.
I just... I guess I just have to learn to let go of light maps... my little safety net for horrifically placed lights.
Dashiva@Posted: Sun Nov 04, 2012 12:00 am : Cryengine 3 does it really well, no lightmaps or anything.
jmarshall23@Posted: Sun Nov 04, 2012 12:24 am : Dashiva wrote:
Cryengine 3 does it really well, no lightmaps or anything.
CryEngine 3 does a lot of things very well, aside from being at a price point that developers are able to afford
.
Quote:
Yeah, rebuilding lighting in UDK is like watching paint dry. Over and over. And over. The question is, if the UE 4 voxel lighting is too expensive, what are you going to go with? Cryengine-esque deferred lighting?
I was thinking of maybe light propagation volumes
http://www6.incrysis.com/Light_Propagation_Volumes.pdf Quote:
I just... I guess I just have to learn to let go of light maps... my little safety net for horrifically placed lights.
F*cking artists
.
Personally I don't have a problem forcing developers to be on high end hardware, because games now a days average 4+ years to make and a substantial amount of whatever your target audience is, will have good enough hardware to do all this stuff in realtime.
Dashiva@Posted: Sun Nov 04, 2012 6:50 am : http://imgur.com/doz5cSeems to fail on shader compile or something.
Tr3B@Posted: Sun Nov 04, 2012 12:09 pm : Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
It has a nice feature list but Sauerbraten and Tesseract have an extremely poor code quality. I've read open source engines for 12 years now and those are actually the worst.
So if you want to make a game and look for some programmers then you should rather make a big step away from those.
I'm really looking forward for the CDK by Justin. His stuff is very nice. There will be also some nice open engine upgrades by me once I will complete my game.
I also have experience with the Cryengine, UDK and Unity 3D. If you want to create a game wether commercially or for free then I recommend to learn Doom 3 inside out.
You can do pretty much everything you want with it unlike with the others.
Dashiva@Posted: Sun Nov 04, 2012 8:49 pm : Tr3B wrote:
Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
It has a nice feature list but Sauerbraten and Tesseract have an extremely poor code quality. I've read open source engines for 12 years now and those are actually the worst.
So if you want to make a game and look for some programmers then you should rather make a big step away from those.
Yah, I was just referring to it as another example of realtime GI. The cube engines lack any sort of modern art pipeline, I wouldn't use them for anything.
Anyway, anyone get this to work yet? I tried again but it comes up with the same shader compile bug.
Tron@Posted: Mon Nov 05, 2012 4:18 am : jmarshall23 wrote:
No longer based off the Tron's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
Don't credit me for that, all AO's fantastic work!
jmarshall23@Posted: Mon Nov 05, 2012 6:58 am : Tron wrote:
jmarshall23 wrote:
No longer based off the Tron's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
Don't credit me for that, all AO's fantastic work!
Edited the topic, it was great work done by you guys none the less.
. Carmacks original shader just was slightly faster and yielded a slight slight visual increase, so there wasn't that much of a difference you guys did a good job. The speed boost/quality increase came from increasing the clip level size to 2048, and instead of having a levelsizexlevelsize texture for each level, I switched it over to one texture and uploaded the miplevels required for each miplevel, rather than the old implementation for uploading the entire level(even though it technically was 1/4 size of the original but it still filled up the entire texture space), and than the old code generated mipmaps on the fly which obviously had to go.
That mixed with dxt5 compression and realtime lighting makes megatextures usable. Stencil shadows just obviously have to go which I'm pretty close to finishing up the tutorial on.
Tron@Posted: Mon Nov 05, 2012 7:45 am : It's amazing progress you've made, potential for some really nice looking terrain now.
jmarshall23@Posted: Fri Nov 02, 2012 5:55 am : Attachment:
megatexture_r3_1.png [ 1.27 MB | Viewed 434 times ]
Video:
http://www.youtube.com/watch?v=eqmWeZmi ... e=youtu.beDownload(binary + megatexture + source code):
http://www.gamefront.com/files/22586803 ... lic_v2_rarMegaProject files:
http://www.gamefront.com/files/22586897 ... roject.rarI was going to make this a tutorial but it would be too long of one because everything required ALOT of changes. To install drag and drop into your doom 3 folder, this is fully compatible with Sikkmod.
Features:
MegaTexture clip levels are now 2048(was 512), which allows for the detail required for Quake Wars terrain dimensions. The surrounding pixels around the player will be way more detailed, as evident in the screenshots.
The old code blitted each clip level to different texture, and in realtime generated the mipmaps for those levels. The new code blits to ONE texture and blits each clip level to that textures mipmap. Which gives a huge speed boost required for blitting 2048x2048 clip levels.
Megatexture's can now have realtime lightning and bump mapping on them.
MegaGen now generates mega local maps(specular is in the r channel, and the local r channel is in the alpha).
Speed up megagen by 10%.
MegaLevel's are now stored in seperate files a long with the clipmap.
No longer based off the Tron's/AO's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
BUGS:
There is a bug were the stuff that is far far far far away renders black, I just noticed it now I'll fix it in the next release.
Terrain self shadowing looks horrible because of stencil shadows I'll drop in shadow mapping from idtech 4 cdk when I can.
Building a megatexture
Edit or create your own megaproject(look at the sample for how to setup the project).
Run Doom 3 open the console and type megagen <megaproject> you build your megaraw and megalocal files.
makemegatexture <megaproject>
Time to build a megatexture, makemegatexture takes my computer about 7 minutes and megagen takes about 6 for a 32768x32768 megatexture.
jmarshall23@Posted: Fri Nov 02, 2012 3:19 pm : Opps forgot the material :/.
Make a new material called megatextures.mtr, this one also takes out the self shadow for the terrain.
Code:
megatexture/planar_valley
{
solid
cmTwoSided
noShadows
qer_editorimage megatextures\valley_preview.tga
{
megatexture valley.mega
}
}
//
textures/megatexture/grass_01
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage1.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage1.tga
alphatest .4
}
}
textures/megatexture/grass_02
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage2.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage2.tga
alphatest .4
}
}
textures/megatexture/grass_03
{
twoSided
nonsolid
qer_editorimage textures/vegetation/grassfoliage3.tga
//bumpmap textures/vegetation/pinetree01_local.tga
{
blend diffusemap
map textures/vegetation/grassfoliage3.tga
alphatest .4
}
}
textures/megatexture/tron_grass
{
//noselfshadow
noshadows
nonsolid
twosided
qer_editorimage textures/vegetation/tron_grass.tga
//{
// blend add
// map textures/vegetation/tron_grass.tga
// alphatest .5
//}
{
blend GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
map textures/vegetation/tron_grass.tga
//alphatest .9
scale 2,1
rgb .9
}
}
textures/megatexture/tron_tall_grass
{
//noselfshadow
noshadows
nonsolid
twosided
qer_editorimage textures/vegetation/tron_tall_grass.tga
//{
// blend add
// map textures/vegetation/tron_grass.tga
// alphatest .5
//}
{
//blend diffusemap
blend GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
map textures/vegetation/tron_tall_grass.tga
alphatest .65
}
}
textures/megatexture/tron_bark
{
//noselfshadow
noshadows
nonsolid
//twosided
qer_editorimage textures/vegetation/tron_bark_diffuse.tga
diffusemap textures/vegetation/tron_bark_diffuse.tga
bumpmap textures/vegetation/tron_bark_local.tga
}
textures/megatexture/tron_wall_mossy_large
{
//noselfshadow
//noshadows
//nonsolid
twosided
qer_editorimage textures/structures/brick_wall_moss_bottom.tga
diffusemap textures/structures/brick_wall_moss_bottom.tga
bumpmap textures/structures/brick_wall_moss_bottom_local.tga
}
textures/megatexture/tron_stone_wall
{
//noselfshadow
//noshadows
//nonsolid
twosided
qer_editorimage textures/structures/stone_wall_smaller.tga
diffusemap textures/structures/stone_wall.tga
bumpmap textures/structures/stone_wall_local.tga
//diffusemap textures/structures/stone_wall_smaller.tga
//bumpmap textures/structures/stone_wall_local_smaller.tga
}
textures/megatexture/tron_wood_brick_wall
{
qer_editorimage textures/structures/wood_brick_wall_smaller.tga
//diffusemap textures/structures/wood_brick_wall.tga
//bumpmap textures/structures/wood_brick_wall_local.tga
diffusemap textures/structures/wood_brick_wall_smaller.tga
bumpmap textures/structures/wood_brick_wall_local_smaller.tga
}
textures/megatexture/valley_water
{
qer_EditorImage textures/pbmax/water1_local.tga
{
//mirrorRenderMap 128 128 // size of the texture to draw the mirror view in
blend blend
alpha 0 //100% reflective, 0% transparent
translate 0.5, 0.5
rotate 0.5
scale 5, 5
program fresnel_water_pixel.vfp //shader program
vertexParm 0 time * 0.008 , time * 0.0 //scroll
vertexParm 1 10 //magnitude
fragmentMap 0 env\mega_up.tga //the mirror/reflection image
fragmentMap 1 textures/hell/clouds_local.tga //normal map for distortion & "per pixel" fresnel
}
}
Dashiva@Posted: Sat Nov 03, 2012 8:49 am : Cool. I will definitely give this a crack and post results.
One question, that is slightly unrelated. Does your CDK have global illumination?
jmarshall23@Posted: Sat Nov 03, 2012 9:07 am : Yes I was using beast but later got in realtime GI using the unreal 4 voxel method, it's slow as shit though.
Mr.Spline@Posted: Sat Nov 03, 2012 7:08 pm : Ooh beast, nice! So I guess that's gone now or will that make a come back? Also awesome job here on the megastuff it's cool beans.
Dashiva@Posted: Sat Nov 03, 2012 9:04 pm : The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
jmarshall23@Posted: Sat Nov 03, 2012 9:17 pm : Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
I'm focusing on a 100% realtime engine rather than baking everything, as the next gen tech will focus on interaction time rather than prettier graphics, so I'm moving away from things that can add to interation time.
Dashiva@Posted: Sat Nov 03, 2012 10:36 pm : Yeah, rebuilding lighting in UDK is like watching paint dry. Over and over. And over. The question is, if the UE 4 voxel lighting is too expensive, what are you going to go with? Cryengine-esque deferred lighting?
Mr.Spline@Posted: Sat Nov 03, 2012 11:41 pm : Yea, on second thought if a RT solution can run fast enough and scale well I'll change my answer. Perhaps, I'll feel differently once I drop my 8800 for something faster although I'll probably just end up with a 560 so no idea if even that would be good enough. Keeping in mind that anything using CDK will likely be at least a year after your first solid release so by then most people should have pretty good hardware anyway.
I just... I guess I just have to learn to let go of light maps... my little safety net for horrifically placed lights.
Dashiva@Posted: Sun Nov 04, 2012 12:00 am : Cryengine 3 does it really well, no lightmaps or anything.
jmarshall23@Posted: Sun Nov 04, 2012 12:24 am : Dashiva wrote:
Cryengine 3 does it really well, no lightmaps or anything.
CryEngine 3 does a lot of things very well, aside from being at a price point that developers are able to afford
.
Quote:
Yeah, rebuilding lighting in UDK is like watching paint dry. Over and over. And over. The question is, if the UE 4 voxel lighting is too expensive, what are you going to go with? Cryengine-esque deferred lighting?
I was thinking of maybe light propagation volumes
http://www6.incrysis.com/Light_Propagation_Volumes.pdf Quote:
I just... I guess I just have to learn to let go of light maps... my little safety net for horrifically placed lights.
F*cking artists
.
Personally I don't have a problem forcing developers to be on high end hardware, because games now a days average 4+ years to make and a substantial amount of whatever your target audience is, will have good enough hardware to do all this stuff in realtime.
Dashiva@Posted: Sun Nov 04, 2012 6:50 am : http://imgur.com/doz5cSeems to fail on shader compile or something.
Tr3B@Posted: Sun Nov 04, 2012 12:09 pm : Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
It has a nice feature list but Sauerbraten and Tesseract have an extremely poor code quality. I've read open source engines for 12 years now and those are actually the worst.
So if you want to make a game and look for some programmers then you should rather make a big step away from those.
I'm really looking forward for the CDK by Justin. His stuff is very nice. There will be also some nice open engine upgrades by me once I will complete my game.
I also have experience with the Cryengine, UDK and Unity 3D. If you want to create a game wether commercially or for free then I recommend to learn Doom 3 inside out.
You can do pretty much everything you want with it unlike with the others.
Dashiva@Posted: Sun Nov 04, 2012 8:49 pm : Tr3B wrote:
Dashiva wrote:
The only problem I see with Beast is that it's probably got a huge license fee.
https://github.com/lsalzman/tesseractmight be something of interest. Tesseract lighting looks really good for an amateur product, almost as good as Cryengine on some of the maps I tested.
It has a nice feature list but Sauerbraten and Tesseract have an extremely poor code quality. I've read open source engines for 12 years now and those are actually the worst.
So if you want to make a game and look for some programmers then you should rather make a big step away from those.
Yah, I was just referring to it as another example of realtime GI. The cube engines lack any sort of modern art pipeline, I wouldn't use them for anything.
Anyway, anyone get this to work yet? I tried again but it comes up with the same shader compile bug.
Tron@Posted: Mon Nov 05, 2012 4:18 am : jmarshall23 wrote:
No longer based off the Tron's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
Don't credit me for that, all AO's fantastic work!
jmarshall23@Posted: Mon Nov 05, 2012 6:58 am : Tron wrote:
jmarshall23 wrote:
No longer based off the Tron's megatexture shader, but rather based off of the megatexture shader in the bfg edition.
Don't credit me for that, all AO's fantastic work!
Edited the topic, it was great work done by you guys none the less.
. Carmacks original shader just was slightly faster and yielded a slight slight visual increase, so there wasn't that much of a difference you guys did a good job. The speed boost/quality increase came from increasing the clip level size to 2048, and instead of having a levelsizexlevelsize texture for each level, I switched it over to one texture and uploaded the miplevels required for each miplevel, rather than the old implementation for uploading the entire level(even though it technically was 1/4 size of the original but it still filled up the entire texture space), and than the old code generated mipmaps on the fly which obviously had to go.
That mixed with dxt5 compression and realtime lighting makes megatextures usable. Stencil shadows just obviously have to go which I'm pretty close to finishing up the tutorial on.
Tron@Posted: Mon Nov 05, 2012 7:45 am : It's amazing progress you've made, potential for some really nice looking terrain now.