*spin-off* idTech Related Discussion

Did someone not say that the textures are all one file that takes hours/days to make from the base art assets?

You can still have more than one MT, even at run-time: one for the static geometry, another for dynamic objects, etc.

The modding problem with Bethesda games using id Tech only presents itself if they would stop using the DB-based construction kit. That's what makes bethesda's games so easily moddable.
 
I am interested to see how much effort does it take Tech 5 to support a fully dynamic lighting system (including 24 hours day/night cycle)... I do not see The Elders' Scroll next game using Tech 5 unless they can provide that feature.
I'm expecting that it will incorporate really good dynamic lighting, I feel it would be possible given there are many ways to go about it. It will be very interesting to see iD's idea of the next generation of lighting techniques when Doom4 comes about and how it will/could affect the world and more so how their implementations compare to others.
 
I'm expecting that it will incorporate really good dynamic lighting, I feel it would be possible given there are many ways to go about it. It will be very interesting to see iD's idea of the next generation of lighting techniques when Doom4 comes about and how it will/could affect the world and more so how their implementations compare to others.
In theory, one could do lighting to the texture atlas.
Should offer nice frame rate and resolution independent lighting solution, at least for a secondary lights.
 
Last edited by a moderator:
So they have a 60fps game, in full HD, which is already impressive. But it's also open world, so there's no competition already... and then there's Megatexture on top of it all, allowing a totally unique variety. And they have the design and the skill to polish the content properly. So, they took their time but it really is quite something.

And then there's gonna be Doom 4... can't wait.
 
A reasonably high-res video.

This leaves me with a better impression than the last trailer, animation especially, and overall I think it looks good.

There are some moments of texture streaming issues, like parts of the buggy actually getting blurrier as he got closer and sometimes jarring pops to the lowest-detail mip:

vqicsl.jpg

ojimw3.jpg


These generally get cleared up within a couple frames and are about as good as can be expected with the media.

I understand that id sticks to what id does best, but I still wish there weren't quite so many direct analogs to Doom 3 (fireball-throwing mutant = fireball-throwing imp, wingstick = soulcube, helmeted heavy mutant with tentacle for arm = helmeted heavy commando zombie with tentacle for arm...).

The water looks terrible. The standing bodies move like slime and don't ripple for anything. The falling jets are still using blatantly separated rotating 2D billboards a la Quake rocket trails that fall into pools of flat animated textures. It doesn't seem like water was a priority at all, which makes it odd that they built and showed a water refinery level.
 
So they have a 60fps game, in full HD, which is already impressive. But it's also open world, so there's no competition already... and then there's Megatexture on top of it all, allowing a totally unique variety. And they have the design and the skill to polish the content properly. So, they took their time but it really is quite something.
And then there's gonna be Doom 4... can't wait.

How is megatexture streaming going to work with destructible environments, does it introduce major challenges to implement it properly?
 
How is megatexture streaming going to work with destructible environments, does it introduce major challenges to implement it properly?
Currently they do pre-render lighting into the megatexture, so most likely that wouldn't work so well.
Happily there is nothing that says you must use unique texturing or precalculate lighting into the textures.
I am interested to see how much effort does it take Tech 5 to support a fully dynamic lighting system (including 24 hours day/night cycle)... I do not see The Elders' Scroll next game using Tech 5 unless they can provide that feature.
Most likely the easiest way would be by not rendering GI into the texture in harddrive and using standard lighting for direct lights and ambient.

More funky way would be render direct lights or sunlight to their own texture layer in the textureatlas when it is in memory and use screenspace mask for a shadows.
One could do some seriously fun things with indirect lights as well, as the rendering could be distributed into several frames.
 
Last edited by a moderator:
Yeah, for a start, UE3 uses a lot of precalculated lighting in games like Gears or UT, too. And yet there's some limited support for destructability, so it can be done.

The main problem as I see is that megaTexture requires longer, more performance intensive shaders; you need to look up the texel in the atlas on your own, probably perform anisotropic filtering on your own and so on. Since Rage is aiming for 60fps, it probably did not have enough shader performance to perform fully dynamic lighting and shadows on top of it as well. This is probably also the reason why their characters don't look that complex either, no skin shaders, fur or anything special (but they fit into the environments and have great art style IMHO).

Doom4 on the other hand is aiming for 30fps only, so maybe they'll have additional features, more complex shaders and so on.
 
The main problem as I see is that megaTexture requires longer, more performance intensive shaders; you need to look up the texel in the atlas on your own, probably perform anisotropic filtering on your own and so on.
The simplest virtual texture lookup requires just a single extra unfiltered texture read (to a 16-16-16-16 floating point indirection texture), and a single extra mad instruction. The texture read is also very cache friendly (big areas read the same pixel).

You can use the hardware trilinear filtering without any problems (no extra performance hit at all) if you include one mip layer to your page cache texture, and four pixel borders to the pages. Also 2 tap hardware anisotropic is fully accessible if you need it, but majority of console games don't even use trilinear for the whole scene so it's not likely something that current generation virtual textured console games will use. Virtual texturing also gives the developer more options about custom filtering, since it's easy to create your own filtering and mipmapping systems (for example indirection to non square mipmaps is cheap and can generate anisotropic style filtering).

In our system we optimized the indirection texture first to 8888 format and then down to 565. I never thought 565 textures would be useful anymore :). 565 fits perfectly for indirection texture (we have a 4096x4096 page cache texture that stores 128x128 pages). With a small integer indirection texture you need 2 extra instructions, but the indirection texture becomes really tiny and really bandwidth friendly to sample.

Basically virtual texturing increases your main shader ALU instruction count by 3 and your TEX instruction count by one (on PC by one extra since you have no custom texture formats with free range scaling). As our main shaders are around hundred of instructions, this extra performance hit is negligible.

The bigger GPU performance hit comes definitely from the page fault texture rendering, especially if the game has long view range and hundreds of thousands of visible objects. A naive implementation (with fat 16-16-16-16 buffers and high resolution) can take a few milliseconds to render, but optimization (and proper multithreading on CPU side) is the key here as well to keep the performance hit really low.

But virtual texturing is definitely just not a performance hit. Simply the fact that all objects sample from the same big texture reduces a ton of render state changes, and allows the game engine to render more objects with a single render call. Hidden surfaces are faster to render, since the texture data is not loaded for those surfaces (lower mip fallback is more cache friendly to sample). Decals can be rendered in the virtual texture pages during runtime (and stay there permanently) instead of being rendered every frame on top of the geometry (huge savings in highly decaled areas). Ambient occlusion and light baking during runtime is also possible to the virtual texture pages (very nice for example for further away geometry that is not animated - but the scene still needs to be used during night time and during day time --- or if you have in game editor and heavy commitment to user created content ;) ).

It would be really interesting to learn all the technical details and optimizations id-software has implemented for their virtual texturing system. Since they have been using a similar technology (terrain only megatexturing in Quake Wars) for a long time, they likely have bumped into lots of nice ideas. 60 fps virtual texturing on iPhone and their prototype Wii virtual texturing system pretty much proves that their system is very well optimized. It would be especially interesting to learn how much (artist controlled) procedural generation they have used to keep the virtual texture HDD usage manageable.

They compress the hell out of the megatextures. Let me remind you that it also has normal and specular layers because characters and objects are included as well ;)
This is one of the things I have been wondering, as they are using a JPG-style compression extensively for the virtual texture pages. Color data is nowadays only a fraction of the whole material data, and already compresses really well in one DXT RGB triplet. In our tech we have two DXT5 textures per material (encoding color, normal, spec, glossiness and emissive/ambient), so the color is only 25% of the data (RGB triplet is half of a DXT5). JPG compression to normal vectors and material properties is very destructive, since JPG is designed only to compress color information (only luminance is pixel precise even at highest settings, chroma is always very imprecise)... I doubt they have no normal maps in their terrain, since that would mean no specular highlights and no dynamic lighting at all.

Rumors state that there can be more than single MT at any time, so the limit of 128k can be bypassed even for a huge landscapes.
More than one virtual texture is entirely possible. And seems that id has chose that route.

A single virtual texture can be also larger than 128k (unless you use 10-10-10 textures for page request instead of 11-11-10 or packing bits to 8888).

Basically the hard limit for a single virtual texture size is formed by your page size and your indirection texture size. We have for example 128x128 pages and 2048x2048 indirection texture, so the virtual texture is 256k * 256k. This might sound really big, but is not even enough to uniquely map a big terrain (without any tricks). For example if you have a 16km * 16km (16*1024) terrain and planar map the whole VT over it, you will only have 16*16 pixels per meter. By mapping the nearby area and the whole terrain area separately in the virtual texture, you can basically get as high texel density as you want and as high world size you want (if you do not need to store all this data to a HDD).
 
Last edited by a moderator:
Carmack says that iD's Rage looks better than he imagined. Seems to me developers are unleashed as of late. This is a sign of the end of all things... well, I hope so, so I don't need to listen to that stuff saying that consoles are so limited and obsolete anymore.

http://www.nowgamer.com/news/5338/carmack-rage-looks-better-than-i-imagined?

id Software's veteran programmer John Carmack says upcoming shooter Rage is visually more impressive then he could ever have hoped for

Rage will finally bring it's unique, id Tech 5-powered take on post-apocalyptic shooting and racing to consoles and PC in September, with even the 360 (revealed to be Carmack's current favourite console) version delivering a 720p, 60Hz experience.

"The great thing in this generation [is that] the fidelity of what we deliver now is beyond what my personal imagination delivers, and I see this quite clearly when I develop the tech," Carmack says in the latest issue of 360 Magazine.

"I have a picture in my mind of how you won’t see repeated texture tiling here, you’ll be able to put dirt in the cracks on this and I’ve got this vague sense of that," added Carmack.

"But when you look at the muddy shot scenes in Rage, you’re just like ‘this looks fabulous!’ It looks better than I imagined it would and that’s just great, to be able to say that."
The part in bold (face) is reassuring, and the 60 glorious fps makes it all the more amazing.
 
Looking forward, can Megatexture support displacement maps, since hardware seems to be going that way ? I know they had Megavoxel in mind for their next engine, but can't displacement maps on Megatexture offers similar unique details through out the game world ?
 
I see no reason why they couldn't, it's just an additional channel.

Although I don't know the format, 8-bit grayscale might not be enough but 16 should be, we're working with that kind of stuff although we don't move around vertices too much.
 
Back
Top