How to achieve better graphical quality?

Now I’ve posted something on the unity ideas that is similar, but this is more of a question.

So I’ve read that it is possible to get Unity to UDK-like quality. I’ve even seen an example where it can be equated to frostbite and even cryengine. However more realistically for one person like me, UDK.

Aside from better shaders and terrain textures (which by the way, if you know of any of these please share) what else can I add to make it look better? With these additions, Unity looks great, but I would like it to look UDK great. So what else should I add?

Thanks
P.S. I’m not trying to put down Unity, because I love unity, and quite honestly, I believe it is the best game engine out there, its only flaw is it’s lack of pre-made graphical tweaks.

P.P.S. On Cryengine 3, your able to simply slide something to increase resolution, is there anything like this on Unity?

P.P.P.S. I’m new to Unity, I’ve made my own game with some complex scripting, the art and gameplay is horrible on it, but thats because I spent 90% of the time working with the scripts. Anyways, I’m sure its not because of my models, because after importing the same model into frostbite, udk, cryengine, and Unity, it looked clearly better on the other ones.

P.P.P.P.P The other engines grass and particles look better, but Unity’s run WAY faster. Any way to maintain most of the performance on unity and make more detailed grass and particles? (If you know of anything on the asset store with better terrain or particles please tell me!)

P.P.P.P.P.S Sorry for the post scripts.

The first thing you should do is go into Edit->Project Settings->Quality. Here’s where you choose per-platform quality settings, and what each setting means. Find the column of the platform you want to change, and click the “Default” arrow at the bottom. This will let you choose the default quality for that platform (it can be set in code as well, which is why that’s just setting the Default). And if you click on the Level on the left, you can define all the settings for that quality level (such as the max number of pixel lights, texture quality, anti-aliasing, animation blend weights, etc.)

so theoretically, if I were to raise all of those to maximum, Would It:

A. Be able to run on most computers
B. Be equatable to UDK
C. Still Run As Fast on Compatible Computers?

Thank you for choosing me over the election.

Edit: When I put it on fantastic, It does look better than fastest, but still isn’t at the quality I would like it to be.

The way things look is completely determined by what shaders, meshes, and textures are used. “Better” is a completely subjective term - what is the difference in appearance, exactly, in objective terms? (‘blurrier, shinier, more saturated’, etc) Unity’s particles can be given animated or static sprites, and any material (shader + textures), just like any mesh. What do you need from them?

P.S.: “P. S.” stands for “Post Script” (meaning ‘addendum to the main writing’).

Therefore “P.S.S.” means “Post Script Script” (meaning ‘the writing after the main writing’, i.e. redundant nonsense), while “P.P.S.” means “Post Post Script” (meaning the secondary addendum).

/argh

well I’m not really sure, I guess I just mean looks cleaner. Regardless of how the models look, how can I make it look cleaner, shiner, and more realistic when I import a model. As well as making terrain and grass look better?

Like why does the last of us and the uncharted series, which has a smaller budget then many games, look so much better then the big budget games like ubisoft, when the world size is essentially the same? I figured its the Naughty Dog engine, so what do they do?

… Because they’re not brown. No seriously - they look better because they are not grey and brown. Color is not the devil.

But that’s all shaders. What shaders are you using? Diffuse is simple shaded textures. Bumped diffuse gets you fake-detail on your basic geometry. Bumped diffuse specular gets you Drake’s outfit right after he’s escaped the water (shiny and all).

Higher-detailed, pixel-arted textures will do better than soft-brushed approximations.

Screen filters like bloom (is bloom a filter? i don’t even know, it looks like it) and saturation can help fine-tune the entire game in the right direction.

It’s all about shaders, lighting and postFX. Unity games can look really great if you’re good at handling those. UDK comes with ambient occlusion, global illumination baking and specular shaders by default. Use these features in Unity and you’ll have something that look almost on par with UDK.

UDK and Cryengine have better renderers, but it doesn’t mean Unity games look crappy. Here’s a screenshot from the game I’m currently working on:

There is still some work to be done (light isn’t baked yet, so no bouncing), but I don’t think it looks bad. These are standard asset Image Effects and some tweaked shaders (to achieve this in UDK you would have to create new shaders too, anyway).

Also take a look at the Mothhead demo.

I’d say first figure out what is in UDK that you think looks amazing. Is it a particular screenshot with some fancy lighting effect, or is it a cool-looking model, or is it that you played Unreal and FarCry and are comparing those games to a cube spinning in the Unity editor? A cube spinning in the Unreal engine isn’t going to look that impressive either. I would guess you’re probably thinking about SSAO or bloom like alexandre and Loius are guessing. Import your model, and then add everything under “Image Effects” to your main camera, turn on soft shadows and HDR, increase the intensity of the light sources to a ridiculous level for extra-glowy bloom, and you might get the look you want.

I don’t have Unity Pro, so that may be a large problem. It may be that some effects that come with unity pro come with UDK free, but I’m not willing to give up Unity just for graphics.

How exactly do I change the shaders? That one is just due to my incompetence with some of the features of Unity.

Lastly, Is there Any possible way to improve the renderers with Unity? Without the need for scripting?

I did figure out some code that can emulate particles looking more realistic, so at least thats a start.

Thanks,

I understand your opinion that Unity is great, which I agree, but is not “udk great”.

Well, as many of us, I have played with both (an the Cry too).

What I think: it is a matter of time for Unity to caught on renders with those, as technology evolves.

However, the other way around will hardly happen: I think UDK and Cry will never be clean and portable as Unity. They are more a supped up mod tool, as someone pointed.

“How exactly do I change the shaders? That one is just due to my incompetence with some of the features of Unity.”

Man… you just need to read a little of the documentation. I mean, even in UDK you need to read. People won’t build a game for you.

your underestimating me, I’ve spent hours looking through the documentation. Just no matter how many times I look through the shaders section, I don’t understand it. I do however, have no problem with scripting, I can do some relatively advanced stuff, like complex AI, better world generation, etc etc.

I hate it just as much as you when a beginner comes on here with no coding or modeling knowledge expecting to build assassins creed 4…

Again, just struggling with shaders. How can I improve that without myself having to script?

Simply read the link I posted.

I never had any courses in 3D modeling and now I code my shaders. I learned everything from online resources. Switching between built-in shaders is one of the most basic thing you can do in Unity. It’s like the first 5 seconds of every tutorial online. Easy to understand and easy to learn.

It is not easier in UDK. You have to at least know what diffuse, specular/gloss, normal and cubemap are. If you don’t know anything about these, you shouldn’t even compare game engines. I mean, how can a game look ok if you do not even know what a texture is?

Shaders seems complex (and some are!) but generally what you need is simple.

Video cards have a lot of ways of doing the same thing. A “shader” basically is a set of instructions for the video card. More of a set of “requests” for this or that feature. Think of the video card as the specialist, and you, as the shader writer, as client. You, the shader writer, talks with the specialist what exactly you want, and he does the low level hard stuff for you.

Please note that I’m talking abou high-level shaders, not the low level ones, that Unity also allow, these are hard.

Note that some shaders has very little code. It is because it is basically a list of requests for the video card, written in the ShaderLab language.

Simple, I judge it by how it looks.

thanks fbgbdk4 for explaining it really well rather then wasting everyones time by saying I should go read about it when I specificly said I don’t understand it, (cough cough alexandre.fiset) but I’m just wondering if there are any premade shader scripts that look amazing that I can buy for Unity?

Also, is there any way to improve the renderer?

  1. You can use a bumped specular shader already bundled in Unity. It looks good and it is what most games use on Xbox 360 and PS3 (cough cough you would know that if you had read the doc). There are more complex shaders available on the Asset Store.

  2. You can “improve rendering” using DX11 tesselation (requires Unity 4), anti-aliasing, light baking, ambient occlusion and other image effects (requires pro version).

I have the unity 4 beta, and I imported DX11. How exactly do I get it to work?

I think you have to do a lot of reading to get the results you want, like everyone else who gets great looking games, including the people making games with udk and cryengine. Read for a long long time. There is no button that makes the game for you, making good looking games is a mix of beautiful art made by talented artists and good use of shaders and lighting, as far as i recall the only setting in the quality screen worth much are the pixel light number and the aa settings, neither of which you will notice until everything else is pretty

alright, I’ve been reading into shaders, and I did actually manage to make one. Though its more of a unimprovement then an improvement. I guess eventually It will look good.

It would be nice if people stop saying I should actually read into this stuff, I assure you, I am.

Last question though, How do I implement the DX11 tessellation into my game? Or is it done automatically by unity when it is imported?

You implement it by reading the docs in [Unity4InstallFolder]\Editor\Data\Documentation → Reference → Surface Shaders with DX11 Tessellation

:slight_smile: