Procedural Textures the Future of Games? 132
An anonymous reader writes "bit-tech has posted an interview, with the head of Allegorithmic, Sebastian DeGuy. In it DeGuy again makes the statement that his software (which was used to make the Roboblitz game released on Steam recently) will be used to make games 90% smaller than what they currently are. He comments on why his procedural texturing technique is an evolution of the infamous .kkreiger. demo and how procedural texturing compares to Carmack's 'megatexturing'. The article includes some pretty extraordinary pictures of scenes rendered with just a few bytes as opposed to the ridiculous sizes of modern games." From the article: "Despite some similarities, technique-wise, we are quite different in several ways. First, the inner technology (the maths) that we use is based on modern maths. We use 'Wavelets', instead of classic maths method of 'Fourier Transform', which was the mathematical technique used in the past by all the procedural texturing techniques (including .kkrieger). Our technique works on a new mathematical model that I developed whilst studying for my PhD."
isn't it slow? (Score:3, Interesting)
Re: (Score:1, Redundant)
Re: (Score:1)
You could even generate the textures to various detail levels (mips) asynchronously depending on the mip levels that the game tries to render.
Re: (Score:2)
Of course, the first-gen stuff will probably generate the textures when they'r
Re:isn't it slow? (Score:5, Insightful)
He'd be right, too. Procedural texturing is just another form of compression. The big difference is that in generating textures, you work directly in the compressed space rather than letting a machine compress the finished product, so you can get totally mad compression rates.
In other words, his intuition just spanked your geeky arrogance.
Re: (Score:2)
Did I say it wasn't?
My point is that procedural texturing has the ability to be a lot more than just lossy compression. It can be used to generate textures down to any level of detail necessary. Done in real-time, it would mean a revolution for video game graphics.
All I said was that Joe Average wouldn't understand that.
Re: (Score:2)
Re: (Score:2)
Prerender (Score:1, Insightful)
Re: (Score:2, Insightful)
Re: (Score:1)
Quality (Score:5, Informative)
Procedural textures don't suffer from this. If greater detail is needed, it can simply be calculated from the texturing formula. As a result, a woodgrain will continue to look like a woodgrain (to the limits of the resolution), no matter how close or far away you get. Raytraced scenery has used this advantage to good effect in the last few decades. If procedural texturing finally makes the jump to gaming, the results could be incredible.
Of course, there is a downside. Real-time procedural texturing is costly. So if the hardware isn't up to it, the advantages of the texturing will go unrealized. It wouldn't surprise me at all if the first generation merely generates static textures on load, then uses them as if they were bitmaps included with the game. Still, once the box is opened, the potential will be too tempting to ignore.
Re: (Score:2, Informative)
Having played through the Roboblitz demo, and having sat through about five to ten minutes of it claiming to unpack procedural textures before the game actually began, it's pretty clear that
Re:Quality (Score:5, Interesting)
Yeah, I bet it will be a while until they are generating the textures on the fly every frame. However, as an intermediate step one could imagine being able to easily generate a larger number of textures for varying levels of detail, rather than having to pre-determine what levels you're going to include on the disk.
Re: (Score:2)
I would expect that if a company like this can find a powerful-enough mathematical abstraction for producing these textures, that nVidia and/or ATI would leap at the chance to put it in hardware, where it ought to speed up a
Console addendum (Score:2)
Re: (Score:2)
Useful, in this case, is defined as: less time to compute than load from the disk
In other words, the usefulness of this technique is that the latency of computing the textures can be made better than loading them off of the disk. This is especially true if you must load a compressed texture into memory and then decompress it before loading it into the rendering hardware. That ways it saves the memory size, memory bandwidth, and co
Re: (Score:2)
of synthesizing new textures from existing textures, particularly from aerial imagery. These have included quilting methods (copying and pasting small bits of texture from one image to another larger image). Other methods include using the FFT to convert an image
Re: (Score:3, Insightful)
Re: (Score:2)
You mean fractal texturing? The difference here is that from different distances, you should be getting different images -- you shouldn't be able to recognize wood-grain from all distances. I.e., from 20 feet you should be able to see surface contours but not the fine wood-grain, from 1
Re: (Score:2)
No, not specifically. But the principles are similar.
We're saying the same thing, I think. I'm pointing out that zooming in on a block of wood using traditional texturing will result in a pixelated mess. Zooming in on a procedurally textured block of wood will give you the detail of the wood. Ideally, you'd start to see that the solid lines of the wood are actually a marbling. As you get cl
Re: (Score:2)
an important question about generated stuff is how much is random and how much is predetermined. Random is more interesting, but different each time unless the result is stored. There is a ba
Re: (Score:2)
Procedural is not the same as random. Procedural is a set of parameters that can be mathematically unfolded into a large amount of information. Random is a set of numbers that are unpredictable by nature. The confusion probably comes in because many Procedural methods use pseudo-random number generators. However, a pseudo-random generator is not random. For a given seed, you will always get the same sequence of numbers.
The see
Re: (Score:2)
Re: (Score:2)
But there is also the business side of it:
Static looks as the designers indented it, can be made by artists (though requiring a lot more work)
Procedural requires surrendering some design vision to randomness only works on some things and requires more programmer time.
Pretty cool though,
Creation issue (Score:2)
the industry by storm if it requires a highly specialized programer
to create a proceedural texture. Is there a Photoshop plug-in?
Great images though!
Re: (Score:2)
No. You win.
Re:Creation issue (Score:4, Interesting)
Please try to keep up with the conversation before you mock someone else.
Re: (Score:2)
Re: (Score:2)
Artist-friendly procedural texture makers exist, though, check out Darktree [darksim.com] for an excellent (albeit slow-rendering) example.
Re: (Score:2)
Eww, who wants to look at code???
Sorry, couldn't resist...
Re: (Score:2)
I was thinking about that question actually. I ended up with the conclusion that the way I see it, it would be just the same as integrating a Perl parser or something like that into Photoshop. A procedural tex
Re:Creation issue (Score:4, Informative)
Indeed it is. I always liked waffles.
You're still missing the point. Procedural textures are procedural. There is no bitmap to edit, only a set of parameters to pass to the function of your choice. Converting the result of the procedure to a bitmap would be superfluous, as it would defeat the size gains provided by doing procedural texturing!
What you usually find in procedural texturing is a tool with various sliders and controls to modify the parameters (e.g. roughness, marbling, scaling, color, etc.) of the texture. When the artist obtains the look he's going for, he saves those parameters out. There is no need for a bitmap until runtime.
The really great thing about procedural texturing is that texture libraries become even more useful. Want a marble floor? Grab a library texture. Applied to the final product, it will look like a fresh texture rather than a rehash of an existing bitmap. The texture can be as large or as small as you need, so there's no obviously tiling like the type that makes traditional textures stand out so much. When the full potential of procedural texturing is realized in gaming, it will all but remove the need for a dedicated texture artist.
Re: (Score:3, Interesting)
But unless you want your game levels to be made up of completely random textures, someone still needs to decide/design what the textures will look like. And the question is, can they do that in Photoshop.
Re: (Score:3, Insightful)
(raises eyebrow) Do you download wordprocessor plugins for Photoshop as well? Because that's about how much procedural textures and Photoshop's framework have in common. Sure, you could "write a plugin". But that plugin would have to manage everything from the parsing of the file format, to the full interface, to the handling of the files. It would make just about as much sense as a Microsoft Office "plugin" for Photoshop. i.e. None at all.
We're not talking
Re:Creation issue (Score:4, Insightful)
Procedural textures are not bitmaps. The fact that you think they're the same shows just how little you understand about the subject at hand.
In fact, most procedural texturing tools map the display to different objects like spheres, boxes, and cones. The purpose of doing this is to show how the texture will look in actual usage. The only "bitmap" is the one dumped into the framebuffer during rendering. When the artist zooms in, a new preview is generated. When he zooms out, a new preview is generated. When he textures a new object, a new preview is generated. There is NO bitmap.
Hey everyone, Control Group thinks that the text handling in Photoshop is good enough for Word Processing! (rolls eyes)
I mean, seriously. I'm drawing blood from my tongue not to throw an insult at your lack of understanding. I honestly realize that not everyone understands the inner workings of computers, mathematics, and computer software. But you're taking stupidity to new heights here. Maybe you should take a step back and pay attention to what everyone is saying? They're not just talking out of their asses here. Some of the people on this forum have done actual, honest to God work on procedural texturing. I still have my own Perlin code sitting around on my hard drive. (Originally intended for a super-small FPS that was going to compete in a competition.) We know a few things about the subject that you obviously don't.
Re: (Score:2)
How many *Artists* have used your 'Perlin code sitting around on my hard drive' ?
How long would it take you to develop an intuitive UI? Intuitive for an artist, that is.
Re: (Score:1)
That's all well and good for you but the problem is the artist whose job it is to make the texture look right is (most likely) incapable of understanding the complex mathematics and programming that would go into designing the procedural texture algorithm.
The current problem with procedural textures is that it requires someone conversant in wavelet / Fourier mathematics and programming in order to be able to generate them. They won't be
Re: (Score:3, Funny)
Q: Is it important that an artist understand Perlin code?
A: NO. As * I * said, a tool could be created for them to create the textures.
Q: Does it make sense for a Photoshop plugin to be used.
A: NO! As I said, a procedural texture tool would have nothing to do with bitmaps.
Q: So that means it should be a Photoshop plugin, right?
A: NO! What, am I talking to a wall?
Q: But Photoshop can do text! You could use it as a Word Processor!
A: What the FSCK are you people talking about?
Q: See! You sho
Re: (Score:2)
This arguement is a prime example of what happens when an individual with an artistic mentality goes head to head with one with scientific mentality, thinking that they are discussing the same thing. Unfortunately the original poster came up with a question that was poorly worded and was interpreted different by different parties.
The OP was never asking about how to generate bitmaps. What he was asking was whether or now there could be a method for an *artist* to come in(that has no understanding of how t
Re: (Score:2)
After your long-winded argument with the other two posters I think that you've browbeat them into submission. But you are still wrong. I don't think anyone in this thread thought that procedural textures had anything to do with bitmaps, you've brought this up as a strawman. The real question, as you well know, is what kind of tool would an artist like in order to gen
Re: (Score:2)
Anything you display on the screen is a bitmap. There's memory inside the computer, see, made up of "bits", that "map" to pixels on the screen.
This is a bitmap. And if you're going to show the artist the texture, which I predict most artists are going to want, then you're going to generate a bitmap.
I don't give a flying fuck if it's mapped to a sphere, a toroid, a spat
Re: (Score:2)
So how could they be comfortable in Photoshop in such a way as to apply to procedural textures.
They are comfortable with how to draw the texture? doesn't apply to procedural.
Comfortable enough to know how to clone, dodge, and burn? Doesn't apply.
Comfortable with applying layer masks? doesn't apply.
About the only concept o
Re: (Score:3, Insightful)
Re: (Score:2)
True - but the original question wasn't whether Photoshop would be the ideal tool for technical reasons, but whether it could be incorporated into Photoshop because that's the tool artists already know how to use. Or, more generally, the question was: are procedural textur
Re: (Score:2)
No it wouldn't be, the designer wouldn't get any more familiar just because you call it via a menu in Photoshop, it would use none of the Photoshop's tools or workflow concepts.
Not only could they, bu
Why do this in a 2D art package... (Score:2)
If you have used a 3D package (Blender, Maya, etc.) the first time you texture a model is probably done with a procedural texture. If you have special needs for a texture, then you might start thinking about UV mapping or projection mapping. If you just need rock, grass, water, wood or skin, reach for the procedural materials first and worry about overlays later.
Now there is a gap to be filled between the material properties available in a 3D e
Re: (Score:2)
Re: (Score:2)
Basically you would just save out the entire Photoshop undo history to a file and use it later to reconstruct the image. Of course, unless you're Adobe, reconstructing the image wou
Re: (Score:2)
Re:Creation issue (Score:4, Interesting)
Re: (Score:1)
Re: (Score:1)
The point has been addressed:
1. There are tools out there (this technology is old).
2. Several other companies have had tools for a while, but his method uses waveletts instead of fourier transforms.
The whole Photoshop plug-in thing is missing the point, because procedural graphics are very different from bitmaps. Photoshop does bitmaps. Also, converting a procedural texture to a bitmap defeats the purpose.
Re: (Score:2)
Note I'm thinking close enough technology here, obviously the bitmap cannot be entirely replicated.
Take Valve's HL2 texture from photo (W/ lightmap + reflectionmap + bumpmap) add proceedural texture to make textures manageable size (approximations of the actual textures used) = one step closer to photo to
Re: (Score:2)
Ok, who uses the tools?
Who creates images/textures?
Who creates a cutting edge killer game with NO ARTISTS?
How many artists have high expertise developing algorithms?
Artists. Not programmers.
How many tens and hundreds of thousands of great textures have been developed by programmers? Not
a couple neato keen demos. High volume, rapid turnaround production?
Sheesh, yes I'm slightly off topic if the only issue worth discussion is the relative performance
between FFT's and Wavel
Re: (Score:2)
fr-08 fr-019 and a decent number of 64 k demos have shown thad good quality and small size is obtainable. Even older there are procedurally generated data in 8 bit games. That wasn't so much revolutionary as obvious that you'd be an idiot to try and store things in raw data form.
I don't know how people can present these ideas as something new and wonderful, It's more like they are finally getting around to doing something that they s
Will it decrease loading times? (Score:3, Interesting)
Re: (Score:2)
Re: (Score:2)
Tradeoff... (Score:4, Insightful)
I think storage and bandwidth will start winning over CPU as we seem to have hit another Ghz wall and are throwing cores at the problem. While RAM, hard disk and flash are all getting cheaper and bigger at a faster rate.
More cores lend their aid (Score:2)
Granted, Valve's engine now utilizes multiple cores and we will see multi-core engines emerge, but still a core or two (of a 4/8 core processor, speaking in the future) to batch textures is not unreasonable.
Re: (Score:2)
Technically speaking, you'd batch in texture generation in with the polygon rendering. Each textel rendered would be a set of U,V coordinates to run through the texture generator. The generator would chew on the floating point coordinates a bit, then spit the result out as a color value. That's part of the reason
Re: (Score:1)
"Elite" used this technique over 20 years ago (Score:5, Informative)
Sony has been hyping procedural texturing recently, the PS3's Cell architecture is supposedly ideal for doing this kind of thing.
Re: (Score:1)
Did this generate the data on the fly then? I always assumed that it generated the landscape at the start of the level and would just draw from a buffer during the actual game.
the PS3's Cell architecture is supposedly ideal for doing this kind of thing
It's true that parallel systems work well for this general class of tasks. Some
Re: (Score:2)
The most recent example I can think of is Oblivion, which used procedural techniques to generate the forests. The branches and leaves of each tree were generated procedurally, not pre-defined. (The same may also be true of the positions and species mixture of the trees in the forest, but I'm not sure about that.)
Re: (Score:2)
I'm sure you know, but for the benefit of everyone else the technology used in Oblivion is SpeedTree [speedtree.com].
Re: (Score:2)
I've been a fan of these guys for a while. (Score:2)
More benifits then just game size.. (Score:1)
Re: (Score:1)
Re: (Score:1)
Procedural textures can be created by the GPU, so creating them on the fly is not as big a problem as you think.
No shit you will need "artists" who know how to create procedural textures rather than someone who uses photoshop. Why the hell are so many bringing this up as if it isn't obvious. Do you people work for the government or something?
Would you take someone off the street who happens to know how to sculpt clay and ask her to make 3d model on a computer? I don't think so. It has about as much chan
Details? (Score:2)
Does anyone know just how much computing power the constant (re-)generation of textures takes? How long the load times are?
I guess procedural textures have their place. They look to have some fractals inside, and it appears they are great for wood, stone, grass, etc. - basically the same things that 3D animation software has been using procedural textures for since at least 1999.
Re: (Score:2)
I think the key thing to understand is that real-time texture generation happens on a textel level. So the computational power needed is a function of how many textels you need to push. Poor man's procedural texturing is already available with pixel shaders. If you can imagine a pixel shader where the only input is the screen coordinates translated into a point on the surface of the polygon, then you pretty much un
Re: (Score:2)
Personally, I'm not sure it will ever make sense to do per-pixel procedural textures. Why would you do computations every frame when you can do them once and amortize the cost over hundreds of frames? That way you can use hu
Yeah, lets go back to 2d! (Score:1)
Okay. Why would you do computations for 3d all the time, when you can just create a RGBA bitmap once, and move it around the screen/ zoom all you want? It certainly would cut down CPU usage. Why have 3d acceleration at all?
The answer is it looks better. The main reason it is in the "generate bitmap, upload to vid card" stage is more because enough programmers aren't experienced with using th
Re: (Score:2)
I can see per-pixel procedural textures being useful if the texture is changing rapidly. But for the vast majority of textures, precomputing makes so much more sense. It allows you to do computations that simply aren't f
Re: (Score:2)
Re: (Score:2)
In a nutshell... (Score:2)
From the itsatypo dept. (Score:3, Funny)
Re: (Score:2)
Oh yeah, they're used for shading metallic surfaces.
Re: (Score:1)
Re: (Score:2)
Old trick, and some misconceptions... (Score:2)
One clarification w/r/t loading times, slow speeds, ect (simplified): With normal textures, you load your tex
Spore (Score:2)
kai's power tools (Score:5, Insightful)
This debate, traditionally painted textures versus mathematically derived textures, reminds me of the feeling I got when I would use any one of the (in)famous Kai's Power Tool suite.
These tools were image processing tools with (to be polite) quirky user interface concepts. The output was always interesting, but never what you really planned. Throughout the literature and documentation, there were sprinkled sentences straight from my Jr. High School art teacher, about "happy accidents" and "explore" and "try a few different things to see what's exciting." The interfaces didn't explain themselves, you had to fiddle with them, and in the process of fiddling, you might get some image output that was astounding, exciting, bizarre, cool, inspiring. The creators of KPT saw that as a good thing.
However, there's a big difference between opportunistic art and production art. The opportunist is the lady on the edge of town who boldly wields an acetyline torch and welds together scraps of iron to sell as mobiles or unique garden fairies or whatever happens to come up. The production artist is told to make a Chanel No 5 ad, which entails a certain palette, a certain wispy but crisp attention to lighting, an interplay of gravity and weightlessness, and above all, black garments on gaunt 30-something models. Things are constrained very tightly for the production artist, and they let that constraint drive their creativity.
KPT is great for opportunity artists, but not for production artists. Write down a concept on a Post-It, and just *try* to achieve that concept with their tools. You can't figure out what the third blobdot widget from the left is doing, so you try to get it to where it is somewhat close. Then you hope the fourth blobdot widget from the left doesn't fuck up any progress you've made when you touch it. You may find a thousand really cool accidents on the way, but you will never really achieve that concept you wrote down on the note paper beforehand.
This comes back to procedural textures.
Which approach do you think will still be in use when they make Final Fantasy XXXIV?
Re:kai's power tools (Score:4, Insightful)
Essentially, what they did with the trees in Oblivion - it doesn't matter for almost any of the trees that they look a specific way, just that they look like various flavors of deciduous tree.
I would think an awful lot of textures could be like that - anything plantlike, marbles, anything with an actual repetitive pattern (screen doors, cyclone fence, brick walls, etc). Sure, there are no doubt plenty of textures that need to be just so, but an awful lot of the game world is stuff that doesn't matter at the degree of detail you're talking about - as long as there actually is detail there.
But again, I don't do texture creation for games, so maybe I'm way off base. But the fact that it was definitely used for Oblivion, and both MS and Sony have said that they tried to design into their machines facilities to handle procedural textures more easily lead me to believe that it's not the lost cause you make it out to be.
Re: (Score:1, Insightful)
I never used procedural texture tools, but it seems creating a large library of textures using the 'explore' approach, and selling the library as middleware, could be perfect for many game studios.
Re: (Score:2)
I think that in general, though, the constraints on texture artists aren't that great. The art director may call for "wood paneling", but isn't going to necessarily want a particular species of oak. In fact, a randomly-happened-upon wood grain that looks nice may be better than one designed to look like a particular grain. Seeing as how today textures never have enough detail to convey
CUDA (Score:1)
Not only textures (Score:4, Interesting)
Not procedural: Simply, compressed. (Score:4, Interesting)
I'm not sure that 'procedural' is really what we want. Good textures often involve real source images, for instance.
Wavelets may be more useful to compactly encode textures generated more traditionally, and to provide better upsampling than traditional polynomial interpolation methods (bilinear, etc). Rather than generating points between samples using just the adjacent pixels, points are generated from a sum of wavelets generated by looking at all of the pixels.
An example of an image format that does just this is JPEG2000.
The interesting conclusion is that maybe graphics cards should be manipulating images in the frequency domain instead of as bitmaps.
This is probably slow as hell. (Score:2)
Re: (Score:1)
Nobody mentioning Demos yet? (Score:2)
Demos have been doing procedural textures for years... almost a necessity when you're trying to squeeze x number of minutes of... stuff into a 64k binary file. Take a look at fr-08:
They've even released a tool [wikipedia.org] for procedural g
Re: (Score:2)
Wow... so how did I comment on this story while totally missing what was already put in the summary -- and TFA? No more posting before coffee. =/
Procedural Generation doesn't work like that. (Score:2)
Play Just cause and Oblivion. Which one uses Procedural generation.
Answer: both of them. Just causes uses it for almost everything, it has 300 square miles of land, that while it's all procedurally generated, they did NOTHING with. The ground looks like crap on the 360, the gameplay is about the same all over the place, and the buildings are.. well sparse and dull.
Oblivion has 16 miles of land. Oblivion doesn't use it for everything. However every tre
Wavelet patent (Score:2)
Does anyone still care about algorithm patents?
Re: (Score:2)