Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Unity Cannot Produce Good Graphics....I Think Not

Discussion in 'General Discussion' started by tylernocks, Jul 31, 2013.

  1. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,847
    You don't need good art to sell something; Terraria and Minecraft are great proof of that. Those games, at best, have terrible to mediocre art.
     
  2. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
  3. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,785
    Uhh...isn't the UDK default scene is lightmapped??? well not the one that you posted...
    and UDK got bloom,AO,and tonemapping on by default....
     
  4. janpec

    janpec

    Joined:
    Jul 16, 2010
    Posts:
    3,520
    Hippocoder that is exactly what i meant. I didnt really mean in general having very bad textured and modeled assets would make it good, but rather having robust simple objects with great lighting , nice sky system and postfx can make it look good. And i cant let you dissagree on this one as it is like that for sure.
     
  5. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,962
    That still doesn't talk about how next-gen graphics tech would affect Terraria and Minecraft.

    And imo there's a difference between "bad" art, and... say..."simple" art.

    Minecraft art is not bad, it's just simple.

    This is bad art (imo):


    This is simple art:


    Do you know where I'm getting at?

    Isn't that cute whale adorable?????????? :-]

    Maybe the key word is "professionalism".
    A game with simple art, can look professional, and it can benefit from better rendering engines.
    But a game with bad art, is doomed, no matter the render engine.

    Only place for really sloppy art, is comedy... and a gameplay that somehow makes up for the sloppy art.

    Besides that, say... a serious First Person Shooter game, with sloppy environments, humans with wrong proportions, and such... no one would really care for how it's rendered, no amounts of post processing can fix that.
     
    Last edited: Dec 23, 2013
  6. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,847
    No, Minecraft art is bad. It's inconsistent, reads poorly, and there's a million other things wrong with it, which lead to the advent of an official texture packing solution.
     
  7. Ocid

    Ocid

    Joined:
    Feb 9, 2011
    Posts:
    476
    Yeah because a Unity sub is the only thing people need to worry about.

    Not like people need to pay rent/mortgage, electricity, phone bill, internet, car loan, insurance, etc etc.
     
  8. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,962
    Aw c'mon! You're getting it all backwards, last thing minecraft graphics are... is "inconsistent". Not only that, such coherence held in this all cube universe... is what makes so special.

    And why does it read poorly? That's quite harsh. Sometimes graphics are in fact hard to read... due to bad contrast, bad silhouette design, poor texture work, manye things.. but even with the boxy aesthetics, everyone knows right away "that's a cow, that's a pig, that's a cloud, that's a tree", it's very easy to read... in fact you should give them merit for that, in a game where some stuff stuff is from this world, and other things not. You can identify what's something familiar, and what's just a monster... with boxy art!

    But, I guess this is one of those things we might as well agree to disagree.
     
    Last edited: Dec 23, 2013
  9. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,446
    To get beautiful graphics in anything, you gotta WORK YOUR ASS OFF for it...
     
  10. tatoforever

    tatoforever

    Joined:
    Apr 16, 2009
    Posts:
    4,353
    @Mwsc,

    You are probably confusing shading and rendering. It's like saying that textures and rasterization are the same thing. They are not.
    Shading (or shaders which is the description of a surface effect) and rendering (which is the draw of the surface itself).

    In CE, there's no way you can create a custom shaders because you dont have access to CE shading pipeline, instead you got a Material Editor which let you create exactly the same thing (it crates a assembly compiled surface effect in the backend while you tweak the materials sliders and properties, which will then rendered later on).

    In UE you got a visual Shader Editor wich agains, creates assembly compiled shaders in the back end which will then get rendered later on.

    In Unity you have a nice Text Editor (Monodevelop, or any available visual shader editor) to write text shaders which create assembly compiled shaders in the back end to get rendered later on.

    All three engines are shader oriented engines and they don't need all their fancy provided shaders to work (only few of them). Sure, Unity stock shaders are very basic but nothing stop you from getting the shaders/effects you need (hire someone or buy it on the asset store if you lack the skills). We only need this so called Shader API in order to create those custom fancy stuff you are looking for.

    Both UE/CE default lighting model is better than Unity which is very basic lambert/bling pong. Also both engines provides better starting examples (that contains a bunch of nice assets, materials and effects) which makes any Unity example looks funny. That's why they looks nice "out of the box". Now, delete all those fancy assets, shaders, materials and effects in UE/CE. Guess how you'll end up? Pretty much like Unity. :D

    I'll go with an other similar example. Custom Scripting needs in your game vs Scripting support in the engine. Let's say you are making an RPG game that requires some specific AI behaviors. Nothing stops you from wrinting it (unless the Engine doesn't support Scripting at all which is not the case btw).

    Your C++/OpenGL vs Engine/Renderer comparisons it's complete no sense (no offence btw). You are comparing very low level stuff (programming languages, rendering APIs and compilers) vs very high level stuff (game engines, visual effects, behaviours). :rolleyes:

    To put it simple, Unity cannot spend time in game specific related features, that's up to you.
     
  11. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,847
    The point is that to even replicate the most basic scene in UDK to even a rough approximate degree you're going to have to do an inordinate amount of work.
     
  12. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,847
    Write a shader that uses a light vector for a calculation. Hell, write a shader at all. You want something that UDK does that Unity doesn't effectively? Then basically shaders are it. Your options right now are to either write them by hand or use the painfully limited and buggy Strumpy Shader Editor because there is absolutely nothing comparable to the UDK material editor.
     
  13. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,962
    Yeah! I've kind of wanted Unity to had it's own shader editor for some time now!

    But, I'm kind of thinking in getting Maya LT, it has it's own node based shader editor, whose shaders can be imported to Unity, which sounds like a pretty slick trick!
     
  14. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,847
    I'd hold off for a bit. Shader Forge will be entering paid beta within the next couple of weeks apparently.
     
  15. TheSniperFan

    TheSniperFan

    Joined:
    Jul 18, 2013
    Posts:
    712
    Well, while I agree with your message that you can produce good graphics in Unity, the video you posted is not impressive at all.
    Having such a simple scene - a single car in the middle of nothing - rendered at such quality in realtime may be great for showcasing individual assets, but has absolutely no relevance when it comes to ingame graphics.
    What you need to understand is that the CryEngine (for example) doesn't have its reputation because it can render cars in a white room at high quality. It has its reputation because it can render dense foliage with leaves moving in the wind and casting shadows, in huge scenes while maintaining a reasonable framerate.

    You should be able to, more or less, recreate everything you created in the CryEngine within Unity. You'll need to write new shaders though, since the default CryEngine shaders are astoundingly good. Once you have written shaders of similar quality for Unity, one question remains unanswered: How will it perform?
    The CryEngine is an engine that was build for high quality graphics. You can assume that every single line of code tailores towards this goal.

    On a less technical note:
    In my opinion good graphics are 50% technique and 50% art style. One of the most beautiful looking games ever has been released 2012 using Valve's Source engine (which is known to have poor graphics compared to other AAA engines). I'm talking about Dear Esther here. Love it or hate it, but you cannot deny that the visuals are beyond impressive.
     
  16. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    I agree on the Dear Esther thing. Try it with an Oculus Rift, despite the water messing up, its absolutely mindblowing
     
  17. avadlamani

    avadlamani

    Joined:
    Sep 29, 2013
    Posts:
    104
    Challenge accepted.
    ...
    ...
    Done.
    The shader is here.
     
  18. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,847
    Okay, now address this part:

     
  19. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    9,847
    No, that is a big issue. UDK allows for shader assembly, immediate preview and debugging. It is a massive time saver, especially for smaller teams, which Unity is pretty popular with.
     
  20. Sahkan

    Sahkan

    Joined:
    Mar 3, 2013
    Posts:
    204
    Can someone try to write a shader that can mimic UDK Light shafts ?
    http://youtu.be/3OmyEfeKHdc?t=48s

    And I'm not talking about the built-in unity light shafts, you know you cant compare it to UDK's .
     
    Last edited: Dec 25, 2013
  21. Mwsc

    Mwsc

    Joined:
    Aug 26, 2012
    Posts:
    189
    Apologies if I posted too quickly without thinking enough about how my post might come off.
    Let me restate my point since there seems to be some confusion:

    Starting from nothing but a C++ compiler and a text editor, there is a ton of stuff that has to get written before you have a game.
    A game engine is a collection of code that is useful in a variety of games. An engine developer makes one engine, then many game developers can use that engine to make a game. The way to develop a generally useful game engine is to look at the code that is common across games, abstract it away, and put it one place so the next game developer has less work to do. (By the way, shaders are code).

    The line between engine code and game code is somewhat arbitrary, and is up to the particular engine developer to decide.
    If I wanted to be silly, I could try to make the case that OpenGL with glut is a game engine. It provide rasterization and input so the game developer doesn't have to worry about writing his own graphics drivers or interfacing with the OS and windowing system.
    At the other end of sillyness, I could argue that a game engine should have read my halfassed english-language description of a game, and turn it into a AAA game without me doing anything. Maybe one day we will have AI to make this possible, like the holodeck from star trek.

    Right now we are just squabbling over where the line ought to be drawn today.
    My point of view is that a great engine would have a ton of awesome built-in stuff, as well as the ability to write your own.
    Unity is pretty good by my standard, thanks to the built-in features, the asset store, and the ability to write your own scripts and shaders.

    The point of contention in this thread and ones like seems to focus on shaders.
    I think that shaders are a genuine grey area. Some shaders might be custom just for one object in one game.
    Obviously an engine should not come with those. But other shaders are genuine rendering engines in their own right: like occlusion parallax mapping, which is a shader that involves ray-tracing a depth map. I don't feel that ray-tracing code is an art asset like a texture map. It is a rendering system that can be shared across many games.

    The line gets even blurrier if you aren't using the rasterization features of the GPU at all, but are instead just firing off shader threads to use your own rendering algorithm. Example: The real-time CUDA path tracer. (Yes I know this is far far away from being useful in a game).

    The thing that is prompting me to post in this thread is that I find it misguided to say that Unity SHOULDN'T come with useful things, because hey, you could always spend your own precious time and money implementing them for yourself on top of Unity.
    Obviously UT has limited resources and Unity can't come pre-loaded with all things for all people.

    But, all else being equal, if Unity came with more and better shaders, that would be a good thing.
    If you want to defend the lack of shaders, a good argument would be that they need to spend their time developing other, more important engine features.
    That's fine, everyone has to prioritize.
    But if you needed, let's say, a diffraction shader to render the rainbow-looking surface of a CD, wouldn't it be nice if it came with the engine so you didn't have to dig up a SIGGRAPH paper and implement your own?
     
  22. PixelMind

    PixelMind

    Joined:
    Aug 16, 2013
    Posts:
    101
    To me that video looks exactly the same as Unity's post processed light shafts. Could you elaborate a bit more what's the difference between the two?
    Infact the results from both look similar to this: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch13.html
     
  23. Sahkan

    Sahkan

    Joined:
    Mar 3, 2013
    Posts:
    204
    You cant say that this looks like the example above :
    $script-SunShafts-0.jpg
     
  24. PixelMind

    PixelMind

    Joined:
    Aug 16, 2013
    Posts:
    101
    No it does not look the same. But are you comparing art or shader technique? That is a completely different looking scene with less stuff blockig the sun.

    Super quick 'n dirty "tree blocking the sun" -type of shafts to demonstrate "sharper" shafts:
    $sunshaftss.gif
    (colors, textures, skybox etc. are not relevant here)

    Again, the shader technique looks very similar to Unity's in that video. Rest is just artistic decisions of colors, skybox textures, effect intensities, etc.

    I could be wrong about the technique though! That was why I asked if there was something special happening there in case I've simply missed something. Maybe UDK's system allows you to have real volumetric lights? Then it would be fair to say that Unity is behind UDK in this regard. However the video just doesn't demonstrate anything special in terms of shaders compared to Unity's default image effect.

    However I have to say the grass animation beats Unitys grass effects 100 - 0 :)
     
  25. Deleted User

    Deleted User

    Guest

    Well irrelevant or not if the consensus that Unity's graphics are up to snuff. Here is the plan for 2014 and will be (Hopefully) over the next year a gift.

    What we are working on:

    We noticed a lot of nervous geometry whilst on the move (which doesn't happen in CE), AA / MB post effect needs to be upgraded and improved, we are working / researching on a CMAA post effect (There's already an SMAA based shader implementation about, might end up as a hybrid?).. Source code is open license so this will be free once we know exactly what we are doing with it. Plugged in as a .DLL and you can modify until your hearts content in C# (Because all the source is C++)..

    Realtime GI, there's quite a few examples about.. We have a Voxel based GI from our own engine we developed, as far as I remember? It was atlas based and dependent on vertices in regards to performance.. Also we were working on indirect reflections based on this model (Spherical harmonics), it needs finishing off.. I'll probably release this for free? Not sure yet, also .DLL based.

    Cube mapped based radiance volume, not thought about it yet.. But it's on the list to do, can't see it being difficult so I will release this for free.

    SSDO, someone passed me an example as a shader.. I'll look into this, if it's easy I'll release it for free, if going to the extremes of DSSDO then I'll put it on the asset store.

    Ray traced HDR reflections, DX11 only (AFAIK) not sure if I want to attempt this so there's a 50 / 50 chance..

    PMB and DOF I'm sure I'll do some tweaking with, as most of it's written by Unity.. I'll get that out for free..

    After that, what more could you want? I'll probably sell some shader's POM, Sub surface scattering etc and terrain shaders that improve on the existing model.

    I'm going to time how long it takes me and the lead dev to do all this, I want to see why most of this stuff isn't already in and if any particular challenges arise that would of stopped Unity doing it already. I expect there to be many, but it'll be interesting nether the less.
     
    Last edited by a moderator: Dec 27, 2013