Reset Button: Megatextures

  By Shamus   Feb 16, 2012   153 comments

Once in a blue moon I do one of these Reset Button analysis videos. Today is one of those blue moons.


Link (YouTube)

After posting this video, I’ve gotten a few comments on YouTube and Twitter. Here are my answers to common questions regarding the video:

I still don’t understand what technical advantage you get out of having one huge texture image instead of lots of smaller ones.

It’s not a technical advantage, but an artistic one. There’s a lot of fussing with laying down rectangle textures, making them line up, avoiding repetition, making sure there’s enough detail, and making sure you don’t eat up too much texture memory.

Let’s say you’ve got four different textures for the walls in this building. One is the default crumbling drywall that will look monotonous if used everywhere. The second shows a big gash in the wall. The third is a huge panel of graffiti. The fourth is the drywall with some posters stuck to it. You’ve got to break up sections of #1 with sections of wall that use the other three. But you can’t ever let the player see the same gash in two different places. So, you should never see ONLY #1, but you should never see more than once instance of #2, #3 or #4 at a time. And you can’t ever see all four at once or risk going over texture budget. Etc. Now do the same juggling act, but with the tile floor. And the ceiling. And the wallpaper areas.

That’s a lot of fussing around. And then the level geometry changes (maybe the designer decides to open up a new doorway to give the player some breathing room) and you’ve got to move everything around.

With megatexturing, you don’t have to worry about any of this. You don’t have to re-use bits. You can have and entire room encircled with unique graffiti, gashes, scuff marks, and whatever else.

Naturally I haven’t used it myself, but the process sounds liberating: Instead of drawing rectangles in Photoshop, importing them into the game, and then arranging them in the world like bits of wallpaper, artists (Carmack calls these people “stampers”) draw directly onto the walls in-game, seeing their work appear right there in the proper context.

This has a very ‘Errant Signal’ vibe to it, though I’m sure that’s no coincidence.

The main reason this feels so much like Errant Signal is because I blatantly ripped off the title card style that Chris uses. I didn’t even ask. Perhaps it wil mollify him if I plug his new video retrospective on Doom? It really is quite good. And the title cards look fantastic.

This might work really well in an open-world game like Fallout.(Paraphrase)

Sadly, that would be very difficult. Rage is big for a modern shooter, but it’s peanuts compared to Fallout 3 / New Vegas / Skyrim. Having texture stampers running around trying to fill in ALL THOSE DUNGEONS with unique textures would be exceptionally labor-intensive. Moreover, it final game data would be gargantuan. Covering Skyrim in a megatexture would take terabytes.

However, you might be able to do some really cool stuff if you mixed megatexturing with procedural techniques, so instead of streaming pre-made data off of disk you’re just building it on the fly in-memory. You’d basically be combining Project Frontier with Rage, which is like making a steam-powered space shuttle.

You thought Rage was underrated?

I’ll get around to doing a proper review eventually, but my short answer is: Yeah. This is an old-school shooter with modern sensibilities. No sticky cover. You can play it like a cover shooter if that’s what you like, but you can also run out there and blast people in the face if that’s what you’re into. (That’s what I’m into.) I loved the atmosphere. Weapons were fun. Foes were fun. Driving was fun. Scenery was spectacular.

Disclaimer: The story has a lot wrong with it. Like, I need a whole post to deconstruct it fully. Also, the software is surprisingly fiddly for an id Software game. This is the least-stable id game I’ve ever played. (Which is still more stable than the best Bethesda game I’ve ever played, so your mileage may vary.)


A Hundred!202013We've got 153 comments. But one more probably won't hurt.


  1. lupus_amens says:

    “This might work really well in an open-world game like Fallout.”

    Oh god, i got paraphrased on here, I can die happy now ;)

    but seriously I understand the technical difficulty with my idea, being massive time and data sinks, but i would still love it (Now i just have to sit on my ass until technology catches up with my fantasy.)

    And shamus?,
    I love it when you make these please keep them coming.

    • Abnaxis says:

      That’s what procedurally generated content is for. Heck, a lot of objects in Skyrim/Fallout/Oblivion were generated procedurally already.

      I get giddy when I think about what could be done if you mixed megatexturing with procedural content. Megatexturing solves sooooo many visual problems that procedurally generated content poses.

      • Shahar Eldar says:

        procedural textures solve one kind of problem (not enough artist time to make everything look just as good / unique)

        ID did not have that problem, (they have money, since money = time, they gave a whole lot of artists a whole lot of moneytime)

        what megatextures solves is how to optimally store / display all that artist+moneytime without being unfair to any perticular artist (by making the texture density of the world procedural assigning texture area according to the size of objects as they are likely to be on the screen)

    • Kresh says:

      Let’s be honest; RAGE has set the bar for post-apocalyptic visuals. The reason I bought the game was because I wanted to see what it looked like when someone tried to do it right. It blew me away… and then crushed my hopes.

      The missions in the city made me drool and I wanted, thanks to the visuals, to explore the city beyond the limits of the level. It worked, unfortunately, to merely make the level feel small by making everywhere else seem so big. Nothing makes you realize you’re stuck in a small corridor like a window that allows you to see all the territory you’re not allowed to explore.

      Atmospheric visuals shouldn’t make the game you’re playing feel boring because there’s a greater game just over the wall that you can see and you’re not allowed to go there!

  2. Abnaxis says:

    Also, the software is surprisingly fiddly for an id Software game. This is the least-stable id game I’ve ever played. (Which is still more stable than the best Bethesda game I’ve ever played, so your mileage may vary.)

    Considering the new, never-been-used graphics technology, it seems a surprise to me that it runs even as well as it does. This is brand new technology, which nonetheless runs well on hardware designed for software that uses an entirely different model for textures.

    To me, the most exciting thing about megatexturing is that you can set it down alongside another game using classical techniques and they’re roughly comparable, despite the fact that classical techniques have years of testing and development and hardware support behind them already. To me, that means megatexturing has the potential to be very, very good if it can get well established and run through a few more optimization cycles.

    • zob says:

      I’m guessing that game stuck with a nasty case of consolitis. Especially considering Carmack’s speech before the game. He talked a lot about how awful current-gen console bottlenecks are.

      • Dys says:

        Really? That’s what you remember? There were a lot of great interviews leading up to Rage, but it was hardly endless praise for the PCs. The consoles may be limited, but at least you can actually use them, and know what you’re dealing with. Almost all the extra power in a PC is eaten up by the layers and layers of interface between a coder and the machine.

        It would have been a better PC game, had it been developed purely for the PC, but since that’s an economic impossibility, it’s not worth wishing for.

        • Infinitron says:

          Almost all the extra power in a PC is eaten up by the layers and layers of interface between a coder and the machine.

          This is nonsense. Play a PC exclusive game, like one of the Total War games, with huge maps, thousands of units on screen fighting each other, etc.
          Then remember that even that game needs to be toned down so that older PCs can play it.

          • Shahar Eldar says:

            PCs have gobs of memory, of the video, random access and long term storage (HD) kinds while having a lot of stuff happen in the background (Operating system, other apps running)

            consoles have relatively little memory (of all 3 types) while being basically dedicated to doing what they are doing in the moment and very little else. they also are generally slower than PCs during their lifetime (excluding launch years) but their power doesnt change.

            consoles also have the advantage of having PREDICTABLY sized memory to a large degree (less so with how much hard drive space you’ll get these days) so you can plan for taking advantage of every last bit of memory and processing power that is available to you.

            • Infinitron says:

              כן, אבל הטענה שרמות האבסרטקציה מורידות את הפיסי לרמה כזו שהוא לא הרבה יותר חזק מקונסולה, היא מגוחכת

              להזכירך, עברו כבר 7 שנים מאז שהדור האחרון יצא. 7 שנים!

              • Shahar Eldar says:

                this is true in terms of theoretical performance but the main problem is what you have in practice, with PCs there are really powerful pcs but the install base exists as a bell curve between the maximum most powerful pc available and the minimum oldest pc that is still running. and you have to aim for the fat part of the curve.

                there are other concerns too that have to do with designing for a known quantity on the consoles where each bit can be optimized and designing for a moving target on PC… not to mention the install base that is likely to buy your game on console vs pc being vastly different. so reality and theory sometimes dont match up,

                יש לי את ה לפטוף הזה כבר שנתיים אבל עדיין לא סמתי אותיות עבריות אליו… זה לא עוזר שאני רק כותב באנגלית 99.9% מהזמן :)

                had to go to another site to write in hebrew :) I’m about 10% of my english typing speed unfortunately (living in the US will do that)

      • Darkness says:

        Interesting Bizaro world you come from. He did not say that in any of the interviews and talks he gave for the last five years, I read and watched them all. He said the consoles were easy to get to 60FPS because he could get to the hardware. The PC was limited to 30FPS, in general, because the game software was so far removed from the hardware multiple layers of OS and drivers. The initial problems on the PC front were graphics drivers, as the drivers the players had were out of date from the ones that worked with the game. The graphics problems with the PS3 are directly related to Sony encrypting the entire hard drive and sucking resources to decrypt each sector every time it is accessed. Same problems Skyrim ran into.

    • Jon says:

      Virtually all Id shooters have been based on new, never-been-used graphics tech at the time, and yet it’s to these Shamus is making the stability comparison.

      • Winter says:

        Or to put it a different way: id is very, very, very good.

        Which makes megatexturing pretty frightening, really. However, i have faith that with time they’ll refine it and it will be the next bump mapping. Maybe not on everything, but if you can build an engine where you have normal textures and then megatextures combined and you get the best of both worlds i think the artistic advantages of megatextures would still exist for not a lot of additional cost. (Of course it’d make game engines even more complicated…)

  3. Infinitron says:

    I don’t understand your point about procedural content generation and megatexturing.
    If you’re using some kind of algorithm to generate content, instead of having a human artist make it, then you’re going to see repetitive patterns emerge. The artistic benefit of using megatextures is thus lost. You might as well procedurally generate individual textures.

    • Nevermind says:

      Um, no you’re not. Making a procedural texture that never repeats (or has a repeat period in the trillions of pixels) is pretty easy.
      It wouldn’t have much different features, but not a single one would be repeated exactly.

      • Infinitron says:

        But they don’t have to repeat “exactly”. They just have to be a bit TOO similar, such that the human eye can notice a pattern repeating itself.

        I’m not saying that procedural content generation looks BAD – it’s quite evidently fine for creating landscapes for open worlds and such, but I don’t understand what the big deal is with combining it with megatextures specifically.

        • Nevermind says:

          The thing is, there IS no pattern that repeats itself. The problem with procedural textures is not that they are repeating, it’s that they lack interesting details.

        • Shamus says:

          Let’s say you’ve got a big ol’ Skyrim world. Those habitrail dungeon bits do start to feel same-y after a while. You can mix it up a bit by having lots of extra variety added to the walls. Climbing moss. Mildew. Cracks in the stonework. Scorch marks. Crazy scrawlings. Water damage. And so on. With existing megatextures, your stampers would have to go through these dungeons an add all this stuff by hand. That would take bloody ages, and the resulting texture data would fill several DVDs.

          If you procedurally generate it at runtime, then a human wouldn’t need to make it and you wouldn’t need to save it to disk.

          You could still have special hand-crafted dungeons for story-central locations, but those generic side-dungeons can be filled in automatically.

          • Infinitron says:

            You’ve explained to me why procedural content generation helps alleviate the problem of megatextures using lots of disk space. I already knew that.

            But that doesn’t explain why you should even use megatextures in the first place, given that you’ve already decided to use procedural content generation.

            • Shamus says:

              I see. Well, if you procedurally generate your textures, it’s going to be murder staying in-budget using rectangles. Usually artists throw down their textures, then test the level and look for bad spots where (by looking through some window or somesuch at some particular angle) the texture usage spikes. Then they can go in and make the window opaque, or move it, or reduce local texture diversity, or whatever. Note the example I gave above regarding the drywall and it’s variety textures. That’s more art than science, and I wouldn’t want to try to make code that could do that. “Are these two identical gashes in the wall too close together?” is a value judgement that I don’t know how to quantify in code.

              If you use metatexturing, then this will theoretically be less of a problem. You can just have your generator spew out all the unique data it needs.

              So I guess a better way of thinking of this is: If we’re going to procedurally generate textures, then we NEED megatexturing.

              In fact, Project Frontier uses a sort of a lame, half-assed precursor to megatexturing where the landscape textures are rendered at different resolutions depending on distance.

              • Infinitron says:

                Ah, so what you’re saying is that there’s also a granularity issue in terms of memory usage, that megatextures are solving.
                It’s easier to load up the relevant portions of a megatexture, than it is to load up a bunch of regular textures, while remaining within memory budget. Am I correct?

                In that case, there clearly is a technical advantage here – not just an artistic one.

                • Shamus says:

                  “Ah, so what you’re saying is that there’s also a granularity issue in terms of memory usage, that megatextures are solving.
                  It’s easier to load up the relevant portions of a megatexture, than it is to load up a bunch of regular textures, while remaining within memory budget.”

                  That’s not only correct, that’s also a really good way of putting it.

                  • Kdansky says:

                    That’s also the point where Carmack mentioned that they had to run their render farms for long periods of time to correctly structure and compress the raw data. In essence, Megatextures moves part of the work from humans to machines, and that’s always cheaper.

              • Shinan says:

                I know this is completely unrelated and is really the kind of annoying pointing out of spelling errors that I generally don’t want to do.

                BUT.

                Metatexturing.

                That’s a concept that sounds so awesome that I hope it will be reality one day.

          • Shahar Eldar says:

            being a stamper, (working in z-brush and mudbox) I can tell you it’s STILL faster than actually texturing something OR creating a shader, and looks predictably better.

            good artists have an innate sense of interestingness, repeat yourself too much, or too regularly and the eye gets bored, repeat nothing at all and they viewer is overwhelmed, there are always repetition in all art but it occurs on various frequency levels and irregular intervals, this lets the eye generalize large expanses while at the same time calling the viewer’s attention to the interesting peaks and valleys of whatever is created.

            procedural shaders havnt quite gotten the handle of this “randomness” though they can look very good, they dont have a “call attention to this window” ability that a good stamper can.

    • Shamus says:

      ” you’re going to see repetitive patterns emerge”

      Only if your system doesn’t have enough depth. I’ve made several systems with enough variety to avoid visual detection. Minecraft might feel same-y to some people, but it’s not repetitious.

    • Abnaxis says:

      If you’re using some kind of algorithm to generate content, instead of having a human artist make it, then you’re going to see repetitive patterns emerge.

      Not necessarily. There are interesting things you can do with noise functions, to make the texture non-repetitive.

      That said, this is an article where Shamus talks about the difficulty of splicing textures on procedurally generated roads. I recall there being a lot of issues with texture splicing in Project Frontier, as well.

      There is no splicing with megatextures, no seams. If I want a road, I draw a road. If I want mountains that gradually turn into plains, I draw it that way on my texture, without worrying about what-texture-goes-on-what-polygon to make the transition look right.

      That’s not to say you can’t do it either way, but with individual textures on every polygon it takes an order of magnitude more work and still leaves you with artifacts.

      There are probably other advantages for procedurally generated megatextures I’m not thinking of, but that’s a big one off the top of my head.

    • Auchwert says:

      I think that’s why he was referring to a *mixture* of the two. Imagine using a ‘deltified’ system, whereby an artist specifies that a large region should use a procedural texture that gets generated on demand (say a scuffed wall), and then uses a mega-texture system to define changes to be layered on top of that base texture (graffiti, cracks, etc.).

      This way you can have massive high resolution (if generic) procedural textures for huge amounts of worldspace, and still have all the benefits of megatexturing available to overlay on the areas you actually need/want more distinctive features for.

      EDIT: Wow, ninja’d…

  4. UtopiaV1 says:

    Fantastic video, I love these Reset Button episodes, shame you can’t do them more often.

    I agree with your retrospective, Megatexturing is an interesting system that can be the next big thing, so long as the issues are ironed out. And the only reason I would loathe Megatexturing with a passion would be its hit on the Modding community. Those guys have a hard enough job as it is, with developers hoarding their SDK, for some cases nearly a decade (although more often than not I suspect pressure from the Publisher, who are not wanting their product “released for free”, as they might see it).

    You know, your video game me an idea, and I wonder if anyone’s tried this: You have texture #1 – a bit of whitewall, texture #2 – a bit of whitewall with a crack, texture #3 – a bit of whitewall with a stain, etc etc… Now, separate the wall object (or floor, ceiling, whatever) into squares, then semi-randomly (will obviously need to ‘seed’ so to not put too much strain on cpu at loadtime) place each texture on the wall, so the texture pattern is #1 #3 #2 #5 #9 #4 on one line, then #2 #5 #7 #1 #3 #4 on the next line down, and so forth. (and as a benefit, is different pattern every time the level is loaded!)

    A compromise between traditional texture placement and avoiding the repetition issue perhaps? Or maybe the generating would take far too long, to randomly seed every wall, floor, ceiling and object? Also a massive step-back for the industry as well, of course, but like you said in the video, it’s fun to improve on old technology as well as create new things too. Also doesn’t solve the problem of lining up square textures with a round surface. I might test this if I can get Visual Studio to behave itself… and if I get some time off work ¬_¬

    Anyway, that was a tangent and a half. And as for my ‘mileage’, I didn’t notice too many issues with Rage on the PS3, it seems the PC community was hit hardest with this (see – complaints of youtube). Which is a shame because it’s a competent shooter. (would you expect less from Id?)

    • decius says:

      “A different pattern every time the level is loaded” is a huge drawback, not a benefit.

    • Shahar Eldar says:

      texture artists do this all the time, if you look at some of doom’s textures they’ll have variaties of the same texture each with a slightly different detail, the artists then manually place a different texture to breakup the repetition just enough so it wont be noticed.

      this works rather well actually what will work even better is if the SPACING between textures can be changed without creating a seam (something accomplished by stamping in megatextures)

  5. Daemian Lucifer says:

    Im not too keen on megatexturing myself however.Yes,it looks nice,but it also requires much more work to do.Having your artists draw and entire world,every single square centimeter of it,is too much.Yes it can be tough to line up individual textures sometimes,but once you figure that out,you can just reuse the same thing dozens of times later.This just seems wasteful.Especially when the end product is another bunch of rocky wastes.

    What I liked most about rage were the death animations.Now those were spectacular,and Id like to see more of it.

    • Abnaxis says:

      Can’t you still do things that way? There’s nothing that says an artist can’t copy-paste a hunk of texture over and over, just that they don’t have to. Moreover, they can copy-paste arbitrary-sized hunks of texture, rather than taking a texture from one polygon and spending a lot of time massaging it so it looks right on a different polygon.

    • Shahar Eldar says:

      you’d actually be surprised how much FASTER it is stamping each square cm of the world!

      carmack also showed how in the editor everything starts with a base of repeating textures. and the stamps are put on top of THAT so no part of the world starts out bare.

      in addition to that, stamping is very easy to repeat using the correct tools (z-brush for example makes it very easy with a graphics table to cover a huge amount of area with stamps creating varying details all with the same stamp even)

      where before texture artists had to work like engineers, taking a texture scaling rotating moving around picking another creating a new object to place it on, so on… in ID’s engine they can just work like painters, it’s a much more natural method and creates better results with less effort (this coming from someone who has done both methods)

  6. Klay F. says:

    As far as technical advantages of megatextures go. I thought one of the big draws of megatexturing was the advantage they gave to the current/near-future gen console architecture (i.e. where hdd space and memory is at a premium, but latency is at a minimum, as opposed to the PC where its the opposite problem).

    I thought I remember Carmack at one point talking about how this would eventually put consoles on even footing technically with PCs. Did he ever say anything like that (or even imply such a thing) or did I just imagine it?

  7. Leviathan902 says:

    I just finished Rage last week and I have to agree with Shamus, Rage is way under-rated.

    The gunplay is wonderfully old school (no cover, you’re a walking swiss army knife of ballistic weaponry) and the driving sections and combat are fun. The game is not without flaw, and the lack of auto-aiming on consoles makes it difficult to be sure, but it’s well worth a look if you haven’t played it.

    Incidentally, I played the game on Xbox starting in late December and didn’t notice a lot of technical problems. There was some fairly noticable texture pop-in but it wasn’t any worse than say, Skyrim.

    • Sagretti says:

      I’m not sure how I’d rate Rage, but I am really, really enjoying it. Overall, I’m getting the impression that it’s a really good to great game that’s also a failure in a lot of ways.

      The shooting is great, even though some of the enemy tactics leave something to be desired (mutant boss fights are literally dodge, dodge, fire, repeat). The driving is pretty enjoyable, though the controls aren’t perfect. The world is also really lovely, and makes me wish Gearbox and Id were working together on the next Borderlands.

      However, the game tries to be an open world game, but fails miserably at it. Things initially seem open, but every canyon you drive through, every shooting level, everything is one big corridor. It’s especially horrible when you come to the 100th knee high obstacle that the game completely refuses to let you jump over. Heck, the jump button was so futile that I was momentarily stumped the few rare times you were required to use it.

      It’s not as horrible as I read, but it still felt like a chore a few of the times I had to drive through the same canyon just to get to the next mission. This is a game that could have greatly benefited from auto-travel, as there’s not a lot of compelling reasons to go out into the minimal world.

      There’s also the fact that the game pushes it’s story hard, yet it’s incredibly lazy. The bad guys are the “Authority,” the good guys are “The Resistance,” and that’s about all there is to it. I’ve also already read about the crappy cliffhanger ending, which is even more depressing since there will probably never be a sequel or dlc since the game didn’t meet sales expectations.

      Add in the technical problems that PC users had at launch, and I’m not surprised that the game got as much negative press as it did. I think if they would have de-emphasized the open world bits in pre-release talk, made the story a wee bit more compelling, and had worked with Nvidia and Radeon to have compatible drivers already out, the game would have fared much better.

      • Winter says:

        The thing with the drivers is that id games have always had issues with drivers. In the old days, Carmack would just re-write the drivers himself for the offending cards and fix the bugs personally. These days that doesn’t work, but if you go to nvidia or ati and tell them they need to fix their drivers they’re going to call security on you and have you thrown out onto the street. Then the game is released and, surprise surprise, Carmack was right and they have to scramble to fix their drivers.

        (Note: this is purely conjecture and i have no idea how this actually went down. I would be surprised if it wasn’t some variant on the above, though.)

        • Simon Buchan says:

          The way it actually went down?

          Carmack goes to ATI and nVidia:
          “Hey, we’re developing this crazy new way of using your hardware, and your drivers are completely falling over on it. Could you fix it?” (Keep in mind that a minor version of this is pretty normal for a AAA game.)

          ATI and nVidia do their development and fixes and give Id a custom version to do their testing, Id goes back with other bugs, repeat until everything is great. Then when ATI and nVidia feel the changes are stable enough to put into the final drivers they start working on merging those changes back.

          Then it’s testing, testing, testing on the 10s of thousands of titles they don’t want to break and the dozens of bits of hardware they have to work on (that often have some pretty major differences under the hood). Normally, these driver changes are minor enough that they can be released well before the game can go from Gold to store shelves (physical or digital), and everyone is happy.

          In this case, ATI guessed they could get this merge done before Rage’s release date, and said as much to Id, they decide that not going completely bankrupt would be good, and Rage goes gold under the assumption that the perfectly working (for them) drivers they have in-house will be available to their customers, ZeniMax starts marketing….

          And then ATI finds out there’s some conflict with the Battlefield 3 changes they made for EA, or that it horribly breaks a whole heap of OpenGL programs on certain chips, or whatever, and they decide horribly breaking everyone who’s *not* playing Rage is worse than everyone who *is* playing Rage being horribly broken. And John Carmack gets called and idiot who can’t make games because ATI has a dysfunctional development process :(.

          I don’t really envy ATI either, though. Who knows, they may all be idiots, but it doesn’t sound like an easy job making thousands (at least) of games work on dozens (at least) of types of hardware – all of which are optimized and hacked for performance to the absolute hilt – and then to make ABSOLUTELY sure they aren’t running even 1 FPS slower least they make the competitor’s chip look better. At least if a new game straight up doesn’t work, that’s it’s fault for releasing a game they didn’t even bother to test, right?

          So what I’m saying, is that my next graphics card will be nVidia, I guess.

  8. Adam P says:

    Shamus, I recall that you once talked about something similar to megatexturing awhile back. I think it had something to do with streaming level data? The general idea was that load times could be improved if there was some sort of texture manifest. By comparing texture lists, only unused textures would be dumped from memory instead of dumping everything and then loading it back in. It’s interesting to see that megatexturing does something like this.

    Also, it blows my mind that megatextures can work when UV maps are taken into account. That’s nothing short of wizardry, as far as I’m concerned.

    A question I have is: how are the load times in RAGE? Are the levels separate maps or is the world open and seamless?

    • Chris says:

      Load times are on par with most other games – it takes probably as long to load a RAGE level on my machine as it does a game of Starcraft 2 (~15-30 seconds, depending).

      As for the openness of the world – there are large canyon/wastelandy overworlds that connect different dungeons and cities, and are so large you can drive around them in your buggy and blow stuff up and explore. But by and large points of serious interest are walled off as separate levels with a loading screen between the overworld and the level proper.

      • Adam P says:

        It would then seem that megatexturing doesn’t have an impact on load times or level planning, then. Which echoes what Shamus said about the technology being more for artists than designers.

        • Dys says:

          I think it would be most true to say that it’s an advantage in terms of the development cycle itself. It allows the artists to be artists, and the coders to be coders, thereby streamlining the entire process of content generation. I think the development of Rage could reasonably be cast as an exploration of how game development needs to change, because the current models are simply not scalable.

        • X2Eliah says:

          Moreover, constant world-streaming is entirely doable with regular texture mechanics. From an old popular example, Oblivion’s surface-world does just that streaming constantly, so you don’t see loading screens until you enter a town/dungeon/house.

          • Adam P says:

            But that’s not really constant, is it? I’d like to see an open world game where towns/dungeons/houses aren’t their own cell/map/level but integrated with the entire world. Y’know, to go from the tallest mountain down into the deepest depths on the other side of the world without ever hitting a loading screen. The only game that I’ve seen do that was Dungeon Siege.

    • Shahar Eldar says:

      the original UVs of whatever was created are basically obliterated in the processing part of megatextures, and all the visual detail is stamped on to one large (mega) texture with procedurally generated UVs this is similar to how normal map baking is done for most characters these days

  9. Dave B says:

    It struck me that megatexturing might be most useful in a game that takes place entirely within a small number of spaces that the player will visit over and over during the game. That way, instead of reusing textures in bits and pieces, you can reuse entire environments.

    Alternately, could a designer create a hybrid of the system where maps are broken up into fully-textured set pieces that can then be reused? It would take a very specific sort of game setting for someone to reuse scenery like that without the players catching on.

    What do you all think?

    • X2Eliah says:

      Reusing environments is bad, very bad. Shamus already said that people catch on to repeated patterns very fast. With locations/worldspaces, this problem is just as large, if not worse.
      As an example, consider Dragon Age 2, which relied VERY heavily on reused worldspaces… The game got pretty much slammed for that.
      Or, alternatively, Oblivion. All the dungeons were made from the same repeated environment-fragments. In fact, they even had a good variance in terms of placement, extra clutter, lighting… And still, the game is not almost ridiculed for the repeated copy/paste locales (not that I agree with that, but then again I like bethesda’s games, which seems to be Faux Pas around here).

      Basically, it’s, imo, nigh impossible to do without players catching on – or you can only utilize the repetition so few times (and with so much handtweaking to make them feel dissimilar) that it’s hardly worth it.

      • Dave B says:

        I see your point. On the other hand, in a game where every location is unique, but the player visits each one several times during the game, you would still be, in a sense, “reusing” that texture content. (I’m thinking of the System Shock series) I get the sense that players get annoyed by identical environments only when the game pretends they are not identical. Still, players don’t usually like backtracking either, which forces the story writers to justify keeping the players going in circles. I guess it boils down to: where can you move the problem to?

        1. the artists, either by making them use the old texture system with its inherent problems, or by making them “paint” in all of the detail of a large game world by hand.
        2. the writers, by making them think up good ways to keep the player from hating all the backtracking in a small game world.
        3. the players, by making them endure a large world where every dungeon looks the same, or a small world that pads the game out with obnoxious, poorly justified backtracking.

        Or maybe I’m talking nonsense because I know nothing about game design/technology. There is that.

        • Infinitron says:

          On the other hand, in a game where every location is unique, but the player visits each one several times during the game, you would still be, in a sense, “reusing” that texture content. (I’m thinking of the System Shock series)

          This is where good design and writing come in.
          Citadel Station and the Von Braun were memorable, iconic locations that you enjoyed exploring thoroughly and repeatedly.
          Kirkwall…was not.

      • GiantRaven says:

        The problem with Dragon Age 2’s reused areas wasn’t that they existed, it’s that they were used for a variety of different locations. If you always visited the same cave/factory/sewer/whatever then having the singular location would make sense, but as it stands it just seems like pure laziness.

        That being said, I did like that the story of the game was contained purely to the singular location of Kirkwall (and surrounding area), as opposed to spanning an epic number of locations. Laziness seemingly springs up again in that area as well though, seeing as I find it suspect that the city would stay looking exactly the same throughout the extensive years of the main story.

  10. Kellett says:

    Unteal Tournament?

  11. Dev Null says:

    And here I was starting to think I was the only one who liked Rage. Was it perfect? Of course not. Was it fun? Yep.

  12. OK. That’s it!

    I’m gonna go make a game called “UnFuchsia Tournament”.

    Or maybe “UnLavender Tournament”. (02:19)

    *grin*

    Leslee
    PS Very interesting video. Thank you for doing it.

  13. Lame Duck says:

    “It’s not a technical advantage, but an artistic one.”

    I don’t understand how it surmounts the technical limitations though. If you’re not reusing or repeating textures, but instead all of the surfaces have their own unique part of the megatexture, won’t you need a lot, lot more data to texture everything? Won’t you still have essentially the same problem of having a texture budget, except it’s not how many textures the player can see at once, but how much of the megatexture they can see at once?

    • X2Eliah says:

      Well, yeah, that’s kind of what I can’t understand either. At any given time, you have X amount of display pixels that need a texture displayed. Or, say, Y square-units of surface area. What difference is there if it comes from many small files or one big one, if you still need the same amount of colour/pixels/surfacearea displayed to the user?

      Thinking a bit further.. Isn’t this megatexture actually bad if you have sufficient graphical ram? I mean – with lots of small textures, you pop the ones you need into graphics ram, and throw out the ones you don’t need. You access the disc only to fetch and retrieve well-known files. With the megatexture, you need to open the massive file – obviously with some positional streaming, as you can’t bloody open it as a whole – and search for the coordinates you need, and then you need a way to grab only the area you are looking for, and only then you throw it into the graphics ram.. Moreover, when you move just a little bit, you need to stream in the new coordinates, as you don’t really have much more than needed inside your ram at the ready. Granted, with regular textures you would need to potentially get a whole new texture, but (I reckon) a fair bit of the time you already have the textures you need to display at the new bits already in the ram (as they are already used on the surfaces you did see).

      So the flow for regular textures:
      Get small file on disc -> place it in ram -> use -> possibly load new on view-change -> discard.
      For the megatexture:
      Get massive file on disc -> open a part of it -> search for exact fraction you need -> load that exact fraction -> discard&refetch/append (open, search, load in either case) on viewchange -> discard.

      I can’t see any way how the megatexture is better.. Well, okay, if you have a graphics ram budget the size of a chicken’s brain, there is some sense, but otherwise…

      • Dys says:

        That ‘graphics budget the size of a chicken’s brain’? That’s the X-box right there. Without wanting to start a flame war, the technical aspects of console development are oriented around very limited memory space, which megatexturing helps with since it can use exactly as much of the budget as it wants to, leaving anything it can’t use on the disc. The read times in an X-box are way less of an issue than the memory limitations.

        On a PC, as someone else mentioned, the opposite obtains. The read times become a huge issue, and the memory limits expand dramatically. Which is probably why Rage has such horrendous texture pop-in. They also had problems with the Blu-ray read times, I recall, because it’s significantly slower than a dvd.

      • Darkness says:

        id has a Terrabyte database (or more) of the graphics in Rage. Their large rendering farm then renders what the player will be able to actually SEE from a given location. These locations are put into the MegaTexture in a location specific sequence. As the player moves into a space the MegaTexture is streamed in while being decoded. All the actions on small files is avoided. It is, mostly, one file. Thus you get significantly more dense graphics by using one large versus many small textures. The XBox files are in the order of 15-16GB and they are compressed.

        In any OS the opening and closing of many files (while fast) is more expensive then opening a file and seeking to many locations within it. MegaTextures use location specific encoding. The TB data is transformed to the MegaTexture and any scene next to the one you are in is physically close to it. That was the goal as stated by Carmack.

    • Winter says:

      You still have a “how much overall texture can the player see?” issue, but that’s also true with normal texturing. It’s just that with normal texturing you run into other limits first so you don’t get to that point. So: megatextures could be scaled back to the point where you don’t have that problem much more than normal texturing, but generally you don’t want to do that because then there’s not as much advantage. Fortunately, most of the time this is not an issue.

      (I do kind of wish id would release an “HD textures pack”, although it would probably be like 1tb and so it’s not currently feasible.)

  14. McNutcase says:

    One thing that’s bugging me is how megatexturing interacts with non-static world objects. Can you move keyboards around? Are there doors in Rage? One of the things I noticed in Portal 2 as opposed to Portal was a sharp decline in interactive physics objects. In Portal, anything you might expect to be moveable tended to be moveable. You could stack all the computers if you wanted. In Portal 2, that was no longer the case; just about all the physics objects were “important”, to the point that being an interactive object was a metagame marker of importance. It’s feeling to me as though we’ve had a very short time of being able to play about with the environment, and now the technology seems to be moving in a direction that makes such playing about much harder to implement.

    • There is no reason why megatextures should prevent that. The artists just need to make sure that the “bottom” of the object is also textured.
      Think of it as a “localized” megatexture.

      megatextures is basically how you would paint a house in real life,
      vs dismantling the house painting the parts then assembling it again.
      (ok the analogy is kinda wrong there, since all the timber would be duplicates in a game but I hope you see what I mean)

      I believe there is a character texturing/modeler program that is called Zbrush (!), which does something similar, by letting the artist paint the object/character fully modeled, rather than trying to wrestle flat textures on a model.

      Oversimplified megatexturing (the technique, not the id trademark) is kinda like 3D texture painting vs oldschool 2D texture painting.

      • X2Eliah says:

        Aren’t the 3D textures flattened out to 2D planes on export/save anyway?

        • McNutcase says:

          They may well be, but the technology is designed to make it easier for artists to generate content. Imagine if you were painting miniatures, and for each one you had to paint a flat sheet which you then carefully wrapped round the mini. Leaving aside the fiddly nature of wrapping it around, the painting itself is going to be somewhat brainmelting because things aren’t going to be where you expect them to be. Look at a head texture, for example, and most non-professionals will think “the ears are way too far out from the face”. Texturing directly on the model makes it easier for the artist to know what he’s doing.

          As for my question about nonstatic props, I can see now I wasn’t quite getting my head wrapped around how megatexturing works.

          • X2Eliah says:

            Well, yes, I know (done a bit of 3D modelling), I mean that when you export the painted model into a wire-mesh and texture-images for game-engine-use, you still get distortions where you must make curves/bulges into flats (and the less you distort, the more space you waste on the megatexture’s canvas).. So there still is a big element of wrestling between the 3D/2D barrier, just in the opposite direction (will what I painted look good after it was flattened?)…

  15. Raygereio says:

    “You’d basically be combining Project Frontier with Rage, which is like making a steam-powered space shuttle.”
    http://en.wikipedia.org/wiki/Steam_rocket

    So what you’re saying is that it would be awesome and glorious?

  16. Shamus, I don’t know how id’s engine/workflow do megatextures.
    But the ideal way to do it is:

    1. a High res megatexture as the canvas for the artists. id did this obviously.

    2a. let the builder software analyze the megatexture and find duplicate areas or areas that are x% “similar”, depending on the artist, the objects and the tools used there is still a certain amount of repetition, no need to store things more than once right? *laughs* I’m not sure if id took advantage of this.

    2b. the megatexture is chopped into pieces for streaming etc. Placement of the pieces in the datafile is done such to minimize loading and maximize the “streaming” of the chunks. id most likely did this.

    3a. LOD alternates. this saves GFX memory and can speed up streaming as well. This might mean there will need to be 2-3 datafiles with the same textures at different resolutions. id probably did this.

    3b. LOD locking. There will always be parts of the game world the player can never reach or will always be far enough from to allow using only a low resolution texture rather than LOD alternates. distant terrain, distant buildings, sky, etc. This saves GFX mem and disk space. Not sure if id did this.

    As far as I see it, the key advantage of megatextures is for the designers/modelers/worldbuilders/artists.
    Megatextures in and of itself does not bring any direct benefit to the game engine during playing. (other than the world looking more “solid” to players that is).

    At http://en.wikipedia.org/wiki/MegaTexture in the last section “Future technology evolution” there are hints as to the direction this will take in future games.

    It is really interesting that voxels are being mentioned, as that is a very old technology. Harkening back to the old days of http://en.wikipedia.org/wiki/Blade_Runner the game which used software voxel rendering for the characters and thus state of the art at it’s time. (and no need for a 3D card either)

    id’s games are always so-so but their game engines and especially the ideas that Carmack comes up with are always pushing game engine technology forwards, or taking old technology and leaping it forward again.

    • Christopher M. says:

      Megatextures do have one important advantage for game engine performance: instancing/batching. Most engines batch geometry by texture id; each repeated texture equals a separate draw command. With a megatexture, you have (optimally) a single draw call for the entire map – realistically, one call for each mipmap level in play, plus more to automate geometry sorting.
      This is less important, iirc, on consoles than on PCs, although i could be wrong. One of them has architecture designed to handle extra draw calls, but I don’t quite remember which…

      Anyway. This advantage is probably negated by other factors, but there it is.

  17. Please, consider Rage for a future season of Spoiler Warning.

  18. CptRed says:

    The biggest problem with Rage for me was that I couldn’t play it. It’s not that my PC couldn’t handle it but rather the texture popping, even though it was almost not noticeable, gave me a headache. I think it mostly became a problem thanks to sudden mousemovements and that it didn’t keep the textures behind you in memory.

    As I haven’t delved that deep into megatextures I don’t know how easy it is to fix. It might be that the texture lodding is done purely on what is being visible and there is no easy way to try and keep whats behind you or anything else not visible in memory.

    • X2Eliah says:

      I don’t know how easy it is to fix

      Extremely easy.. Play it with a 360 controller. The texture-popping on the PC is because the mouse allows too-fast turning speeds.

    • guy says:

      I imagine keeping the stuff behind you in memory is perfectly feasible from a coding standpoint but not from a preventing your graphics card from emitting smoke standpoint.

      Basically, if the stuff behind you is kept loaded, then standing in the middle of a massive canyon will take twice as much RAM as if it were not. As a result, the largest space the target graphics card could support would be half as large.

      You might be able to get around this by only storing nearby textures and popping in more distant ones, but that would increase the burden on the processor determining what to load.

    • Winter says:

      Texture popping will be fixed simply by future iterations of hardware. My gaming PC is pretty buff and i had to do some extreme stuff to even see texture popping. (SSDs help, i think.)

    • Simon Buchan says:

      The patches gave more options about how much of your system memory to use, which helps a lot, also there are a bunch of forum posts about how to mess with the games config .ini’s in order to tell it how to do everything up to letting the magic smoke out of your computer (aka, set it on fire)

  19. Fat Tony says:

    New mic? Your voice sounds wierd.

    Also, I KNEW there was a reason that Rage looked so nice, but didn’t help the game be/look fun at all.

    • Jokerman says:

      I thought he sounded different at first, but after about 5 mins it sound like shamus from spoiler warning again.

    • Lanthanide says:

      The sound quality was quite bad, getting louder and quieter with a frequency of about a second, getting deeper and higher.

      It sounded really bad and was quite distracting.

    • Simon Buchan says:

      I thought he had a cold or something. A lot of weird inflection, like he’s forcing his throat to do something painful?

    • Josh says:

      Keep in mind that I do an editing and audio balance pass for the voiceovers for each episode of Spoiler Warning, and I assume I edit things in a different way than Shamus does with his own narration. His other Reset Button videos sound noticeably different than Spoiler Warning does too.

  20. Alan says:

    I, for one, look forward to Shamus discussing the PS3’s technology decisions.

    • KremlinLaptop says:

      I do too, but I dread the comments.

      Honestly, I think if Shamus made a post titled, “Theism, Atheism and Agnosticism, discuss the merits! Also red political team or blue political team?” the comments would be LESS volatile then what I imagine anything relating to game consoles would end up being.

      Something about those machines inspires just outright… crazy in a certain very vocal sub-set of people. Tends to shut-down all intelligent discussion.

      • Infinitron says:

        I’d like to think that those types of people don’t read this blog.

        Also, anybody who doesn’t think the PC is best is a doodie-head.

        • X2Eliah says:

          Clearly you mistyped “MAC” in your second sentence there…

          Actually, didn’t Shamus had a relatively peaceful thread about religion with 800+ comments?

          • KremlinLaptop says:

            He did! I liked that post. He even commented on twitter about how he only had to nuke a handful of comments there. One of the many reasons I’m so fond of TwentySided.

        • Sagretti says:

          The weird thing about console debates is that they tend to suck in people that previously had nothing to do with a site. It’s almost like a few crazies come across it, then decide they have to bring in reinforcements to prove their points.

          • KremlinLaptop says:

            What was it called? Nintendo Defence Force? Yeah. That’s the sort of problem that shuts down intelligent discussion in so many places. I am, however naively, hoping that the internet has matured beyond that sort of thing since the release of the current generation of consoles.

            I suspect the internet is anxious to prove me incredibly wrong, though.

            I do feel the need to point out that brand loyalism isn’t always an unmitigated disaster of rude language across message boards and trolling, it can be people who are just passionate for a certain brand of products and find great value in them and I can respect that. There are actually sensible people who are devoted to single brands. I fall into that category in some regards; Canon cameras and their ludicrously expensive lenses, Beretta and their ludicrously expensive shotguns, etc, etc. I’m still capable of pointing out flaws in these brands and products despite the fact that I’m more than likely to stick with them.

            And in a sense I understand why some people are genuinely offended when their halo product is exposed to criticism; they’re invested in it. Not just monetarily invested but emotionally too, the product reflects some aspect of their personality — or they perceive it doing that — and suddenly the criticism of the product becomes criticism of the person who owns such a product. It’s slightly ridiculous, but I can see how it happens.

            Also some of them are just outright trolls, but assholes on the internet is nothing new under the sun.

      • Alan says:

        It’s a shame, really. One of reasons I enjoy Twenty Sided so much is the community. Barring the fanboy influx, it should be a great place to discuss and learn about the advantages and disadvantages of modern gaming consoles.

        • KremlinLaptop says:

          True! Actually I’m going to just take this moment to point out how much I enjoy the community here at TwentySided and how big a part of the whole experience for this blog the insightful and witty comments tend to be.

          There are blogs out there where if I go read the comments I fully expect to be pissed off after reading them, not the case here ever.

      • The Rocketeer says:

        I thought Shamus already did discuss the PS3’s processor eccentricities in the Rage Keynote post, or maybe somewhere else. I remember because he compared it to warehouses and forklifts and stuff. It was a really good analogy.

    • Tizzy says:

      My memory might be playing tricks on me, or my precog abilities might have kicked in again, but I seem to recall that Shamus made a cautious attempt to discuss at the very least some basic aspects of the tech debate on this very site. It must have been a while back (or a while forward…)

    • guy says:

      I do as well! I don’t really follow non-PC gaming very much, but I gather the PS3 is bizarrely harder to develop for than the other consoles.

    • Peter H. Coffin says:

      “Designed by madmen to be very, very good” is how one friend that works in the industry described the PS3.

    • Yes, definitely. Next up, Shamus: your long-awaited analysis of the PS3. Gimme! Gimme! Gimme!

    • Darkness says:

      PS3 technical issues are very straight forward:

      Little to no library support for the console from Sony at start up. MS did a much better job and third parties were pretty quick as well.

      The Cell processor was very late, expensive, difficult to program and had some yield issues. It is also currently a dead end. Sony had committed to a ten year cycle because it was going to be so much better then anything else out there. And it was, except nobody could program it for a couple of years.

      The super duper sub processors are limited to six for the game OS. They ignore one to keep the yields up and one is owned by the firmware for encrypt/decrypt.

      Sony encrypts everything. BluRay, the hard disk and anything else they can think of. The air itself if they could figure out how to do it. So accessing something off a drive means the sector must be decrypted every time it is accessed. This means the file directory, the file node and the actual file data. Current PCs (linux,mac,win) all have more file buffers then the PS3 has total memory. A gaming PC will have more graphics memory then the entire PS3.

      Their hard drives are slow, 5400 rpm, with a slower data transfer as well and is also hampered by the decryption as is the BluRay drive (think faster then DVD to start but slower when finished). Rage is limited to 8 or 9 GB storage. Which means there has to be some magic BluRay accessing or such to satisfy Sony storage limitations. Which could be some file size limitation come to think of it.

      Some of the modern game companies have overcome the limitations of the environment. Crysis 2 and Enslaved worked very well. But, if you don’t have a PS3 centric group that can drive the development down (to me) a very narrow path then you get texture pop-in and Skyrim auto file save lag times. Just guessing here but both of these are probably related to the extra time necessary to decrypt the entire bloody planet twice. Remember that Rage data is compressed (via a MS video codex or such) and before that it has to be decrypted by Sony. This constant encrypt/decrypt cycle costs memory band width, CPU overhead and, with files as large as 16MB Skyrim save files, takes a lot of time. This is assuming a good algorithm which I would not recalling their recent security issues.

      The PS3 is still a viable platform. The developers have an extensive third party support system now. Most understand the basics of the PS3 and some understand the fast bits. And it is reasonably priced being manufactured at a profit.

      That said I do not think they believed that the PC and PC Graphics would come as far as they have, the XBox working as well as it does nor do they yet realize the overhead of their DRM. Nor did they see game file sizes getting as large as they are. The Sony PS3 Ten Year Plan will be lucky to hit seven.

  21. Dys says:

    I did like Rage, though I could not make myself play it through a second time. Honestly, though, getting it running in the first place was a nightmare of beta drivers and ini tweaks. I think those launch issues, and the fact that the pop in never entirely went away probably coloured the general opinion of the game itself.

    When it’s working, it’s not a bad game, though still less than spectacular. id’s games have always been technically proficient, more than mechanically. Rage is what you get when the tech doesn’t quite work, and can’t mask the failings of the game itself. That said, I think Rage is probably one of the most ambitious games in id’s history, in terms of actual gameplay. You have actual characters, and a half assed story. You have slight deviations from linearity, you have minigames for god’s sake! These are all positive steps, which have been unfairly overshadowed.

  22. Vekni says:

    “But your brain does!”

    Was that an intentional Plinkett reference?! :-D

  23. Joe says:

    What I’m really curious about regarding the rage engine is the way he got it to run on an iphone. It seems like something with this much fidelity and graphical prowess (to say nothing of the actual game memory usage) would eat up a lot of graphics memory. Am I overestimating how impressive this actually is?

    On a semi-related note, it seems like the “find chunk x of the megatexture” calculation could be done outside of GPU memory. Thus dropping system requirements a bit. Sounds like a pretty decent bonus to me, if I’m interpreting the technology right.

    • Alan says:

      Rage on the iPhone is simultaneously obvious and clever.

      It’s obvious and it’s how ports to lower powered devices always work: lower resolution models, simpler level design, lower resolution textures.

      It’s clever, because it turns out that the technique of megatexturing works on any reasonably modern 3d accelerated system. You don’t need to design your levels and textures in completely different ways to run on low end devices.

      * Not actually new, but Carmack is the first person to turn it into a shipping game.

      • Darkness says:

        And Rage on iOS is JUST the Mutant TV section. Which is very corridor based even though it is based on the huge original TeraByte DB. They have expanded it with additions sections (five total) but I don’t know if they are from DLC or not.

  24. GTB says:

    I liked Rage okay, what I could play of it, which wasn’t much on my ATI card.

    Im more interested in the PS3 video. when is that coming? I don’t have either console, but I have heard that sony is abandoning the Cell technology in the PS4. I would really like an explanation of the whole thing in simple english, accompanied by humorous pictures.

    • Irridium says:

      Well, the short of it is that the 360 and PS3 have 512 MB of RAM.

      The 360 lets you use all of it, while the PS3 splits it in half, and only allows 256 for games.

  25. MatthewH says:

    I missed Rage entirely (which is not hard, excepting Deus Ex, my videogame radar is usually dragging about a year behind the real market). But between this and the clips from Errant Signal, it’s jumped up my list. Though I think I’d need to get it for the console. I worry about my PC, sometimes.

    On a related question, when doing the texture thing, is every texture placed individually, or is there layering? In the wall example, would you dress the entire wall in the standard, and then go lay the alternates on top of that, or would you have to remove the old wall texture and place in a new one?

  26. Eric says:

    It’s worth pointing that the days of developers throwing textures on rectangular surfaces are long going. Unless you’re making interior levels (and even then often not), you’re probably using a terrain system of some kind. Most of these revolve around shaping heightmaps and then painting and blending textures together. This is much, much faster and easier than doing it by hand like back in the UT99 days.

    Here’s an example of blended textures, and they aren’t even that high a resolution:

    http://i.minus.com/i16OR0ahsXKg7.jpg

    If you look closely, you’ll see there might be a little bit of repetiton… but not much, and decent artistry can hide a lot of those problems. No player is going to notice it in practice.

    There’s other stuff you can do to easily mask texture repetition. In game engines that support alpha masking, you can even blend textures along predefined boundaries, so say, grass looks like it’s cut off where bricks are laid down rather than fading out. Here’s an example from Skyrim:

    http://i.minus.com/iK90W1MEliSlo.jpg

    Again, is there repetition? I dunno, maybe… but if there is, it’s not very obvious and nobody will notice. Crucially, there’s also a good chance it’ll still take up less space than Megatexture will.

    Many games also use decals, which are textures projected onto surfaces for added detail. Most newer shooters, including Unreal Engine games, make very heavy use of decals to break up large surfaces. Bloodstains, oil spills, dirt etc. are all done using decals and this further makes it difficult for users to noticce repetition.

    The issue I have with Megatexture is that, while it’s amazing as proof of concept and id’s level designers are to be commended for some of the incredible work they did (really, if it wasn’t for texture size limits the game would look like a CG film), it just isn’t efficient to go in and paint textures on each and every little piece of the game world and blend things together so perfectly.

    Graphics are about creating an illusion for players, and so long as you don’t break the illusion then you can get away with a lot of compromises. The bar keeps being set higher, but frankly good artistry makes up 95% of the difference these days, whether that’s high-quality base assets, textures, or the talent putting them to use – heck, even lighting will completely make or break a level. I just don’t see Megatexture being economical or worthwhile for most purposes.

    Thanks for the video Shamus, it was enjoyable and informative!

    • Alan says:

      All of the techniques that work in the “old” way still work in a megatexture, the compositing is just done when the game is built, not at run time. The majority of Rage was textured just that way. Given that, why bother with megatexturing? An artist can use his old techniques, but not have to worry about the speed cost of having 10 versus 11 layers on a given wall because in the end, it’s always exactly 1 layer. Artists don’t need to worry about how many different textures are visible at a given location, because the answer is “the ONLY texture”. If any artist wants a one-off special texture in a location, they doesn’t need to worry about the disk or memory budget to create yet another texture, the just does it. So instead of making something as stunning as Rage, you can make something “only” as stunning as Skyrim, but with less artist time required, saving money. Megatextures, oddly enough, could save a company money.

    • Actually it does not take that much time. I believe in the video I linked to (part2 of 2) or possibly in part 1, the guy from id says it took like a few weeks to texture the entire racetrack map/level.
      And if you look at part 2 of the video you can see how quickly the guy paints “live”.
      (my post with the link to the video should be um a bit above on this page I think)

      Also, the alpha channel of the texture can be used to provide texture height, thus possibly avoiding the need for normalmapping or bumpmapping.
      (alphablending is not needed as it is pre-blended during development)

  27. Winter says:

    I have to say, i love Rage and i love megatexturing (in theory).

    If i start talking about Rage too much i’m going to get my post moderated due to excessive amount of swearing (directed at “modern FPS design”) so i won’t. However, i will say this: the fact that people “didn’t like” Rage’s gameplay is mitigated by the fact that we’re living in a universe where games like MW3 sell millions. There’s some hypocrisy there, and i’m going to just leave that where it is before the tourette’s kicks in.

    The actual technology behind it is amazing, though. Your little 480p video doesn’t do it justice–the game is beautiful unlike any other game. Sure, games can get close due to trickery and cheating (like what we’re all talking about here) but there is nothing that has Rage’s level of detail and beauty. Really.

    I was playing Rage and Deus Ex at the same time, and going from one to the other it was really obvious that Deus Ex was missing something. When you’re just playing these games you may not notice the cheats, but after doing a bunch of back to back comparisons it’s really easy to see that one is a facsimile of the level of artistic detail in the other.

    Regarding Rage being underrated: i agree. As long as your machine can crank out the polygons (and textures) fast enough, and now that the driver bugs/etc are fixed, it’s great. It’s still not as bulletproof as previous id games, but it’s by far their most ambitious and it’s still better than most of its competition. As a game, Rage is my #3 game for the year.

    As in, my third favorite game of 2011. Or whatever year it was. #1 was Dark Souls, #2 was Deus Ex, #3 was rage.

    • Kdansky says:

      Yeah, Dark Souls overshadows everything in 2011, even though it was a probably the best year for gaming since the golden Age. I’ve just now also finished Demon’s Souls, which was “only very good”, but Dark Souls is utterly brilliant.

  28. thebigJ_A says:

    Great video. Would have really benefited fro 720p, though…

  29. Few here are developers so it might be difficult to explain how things are on the design side. (a prev post of mine here has a video where id demonstrate this).

    But many here have probably used the same tools without realizing it.
    The Sims (both The Sims 3 and The Sims 2 I believe) has a Lot/terrain design mode where you can raise/lower/paint with texture templates/brushes.

    Yep! It’s that easy with the proper tools, and you can see this in that id video.

    Is a part looking a bit naked? Just add a tuft of grass or two.
    Too bright, just darken it, or lighten it if too dark.
    Too flat? Just raise/bevel it a bit, maybe using a bevel texture.

    Maybe megatexture is a misnomer, maybe it should be called “Giant 3D Canvas” instead or something, as that is essentially what it is.

  30. Lanthanide says:

    This isn’t really related to Rage, but there wasn’t a more appropriate thread to post this on before now.

    Probably some people have seen this, but perhaps Shamus hasn’t. Turns out Bethesda spent a week where they let their artists and programmers loose to make whatever they wanted for Skyrim. They call it a gamejam. Here’s a video of all the stuff they made and then decided not to put in the final game: http://www.youtube.com/watch?v=AYOFLqItuW4

    I think this is a pretty good rebuttal to Shamus’ oft-repeated statement that it just costs too much money to make games these days. A lot of these small things look pretty complicated and would add a lot of depth to the game – sure they’re only prototypes they whipped up within a week (they claim), but what if we just had 3 months of this? How much depth could be added to a game like Skyrim for that much effort?

  31. Shahar Eldar says:

    it seems that a lot will be said about this topic and has been said, but here’s my 2 cents about megatextures and their main advantage as I see it.

    firstly my background, I am a 3d artist who has worked on games and films, I am also someone who has read hundreds if not thousands of articles on 3d technology, and I understand most techniques used today in real time and pre rendered applications, though I cant claim to have invented much of anything myself (apart from a few fun shaders)

    megatextures as implemented in rage is a 2 part technology, the rendering tech which put the information on the screen, and the editor which allowed artists to create the megatexture to begin with.

    I’ll start with what the players saw, and in that regard the main effect according to Carmack, seems to have been to optimize the texel (texture pixel) density and texel uniqueness across the gameworld with a particular bend towards uniqueness. basically creating a situation where as much as possible, a texture bit slapped on a 3d model was not repeated from any other patch of texels in the world. this allowed the game to have a look where yes there is no repetition and of course the engine has to be smart about loading the parts you are about to see as quickly as possible hence the glitches where the engine catches up to the player deciding to move the view somewhere that was not quite yet ready.

    this is all something you explain wonderfully in the video and artistically speaking it means that the entire world is a gigantic canvas painted by ID’s artists in a painstaking labor of collaborative love.

    the real interesting part, and the part which artistically speaking megatextures advance “game look” has more to do with the paintbrush used by said artists. first on screen you’ll notice, and at least one person has pointed out, there are no real seams between any two surfaces in the game, this is something that very few games today manage to do AND in modern games is the place where the MOST work has to go to hide that “gamey” feel of the graphics. basically the sharp edge where a polygon, or a texture ends is where 99% of the problems in game graphics really show up. think of the edges of polygons which must be aliased to blend with objects around them realistically, or z-buffered particles clipping into the ground (which are now replaced with soft z effects) the final problem is the seam where textures end abruptly and another begins, and why as you mention in the video, most rooms work better as nice square walls.

    megatextures solves this problem by letting artists paint with no regard to seams at all, they can place “patches” of texture anywhere much like a spray in counterstrike, or a stencil for a grafiti artist, they allow artist to paint and add detail nearly infinitely layering things up more and more on top of the 3d model as if it was a real physical object, this information is then baked, or rendered onto the polygon texel tiles basically each part of the world accumulating all the stamps that were placed on it, from dirt, to grafiti, to pockmarks, to trash, and anything else is all collapsed to a single layer and saved as the megatexture.

    a second layer of processing and selection is then applied to reduce the resolution of each part in accordance with the largest amount of screen space it is likely to ever occupy (probably with player collision information as well as artist tagging) which is the “compression” problems you talked about, this gives ID a uniform texel density, or as close as they can achieve while giving ID’s artists the free hand to paint as if they were simply looking at a canvas while leaving the technical processing and optimization for the computers to do later on.

    I personally love low-poly and low texel modeling but optimizing by hand is a huge time drain on the time of artists which could simply be used to create more art, this is probably enabled quite a bit more creativity and if you want to look at commercially available tools that free artists from similar normally held technical constraints look at z-brush’s polypaint and mudbox’s Ptex technologies, both let artists paint 3d models before performing more technical steps such as UV unwrapping and deciding on texture resolution of various parts. though these tools operate on a smaller scale (single models or environments compared to entire game worlds) they have enabled a similar boost in creative output across the entire industry.

    anyways overall I’d say the megatexture tools for now are not as moddable because the tools are not as available to the public, but knowing ID they will hopefully be given away eventually much as DOOM 3’s uniform lighting solution has, and hopefully someone else or perhaps even carmack himself will eventually come up with a way to reduce the processing requirements to create such content.

    This is at least how my analysis of megatextures goes, and I’m by no means an engineer (I just take a lot of game engines apart in my head)

    – Shahar.

  32. The first thing I noticed after watching your video about how megatextures work, is that you didn’t explain how megatextures work.

  33. Jabrwock says:

    I thought I saw a talk by Carmack that said something along the lines of he knew they had to dial back the detail (especially for the PS3), but he hoped to release a higher detail texture map in the future once gaming hardware had increased performance to be able to handle the more detailed textures. It was an advantage he cited about the PC platform.

  34. The Rocketeer says:

    This makes my brain hurt :(

  35. Sumanai says:

    Just realised something. Megatextures could work well with destructible environments. All those scorch marks could become permanent. Of course, save files could end up huge, but still.

    Also: there’s another technology that you can use to create stuff like skid marks in the road like that. Voxels! Too bad they have their own problems.

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!