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. Dismiss Notice

[Updated] PixelRender 1.1 - realtime rendering of 3D scenes as 2D pixel art!

Discussion in 'Assets and Asset Store' started by kode80, Feb 23, 2016.

  1. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    PixelRender is a complete system of shaders, effects, scripts & tools for rendering 3D scenes as 2D pixel art. The key components are the PixelArt shader for rendering meshs using palette based shading, the PixelOutline image effect for drawing pixel-perfect outlines & the Palette Editor which provides several features for creating, generating & manipulating palettes used by the PixelArt shader directly within Unity3D. PixelRender also includes components for quantizing animation, several examples & full documentation (in both pdf & epub format). It also works on mobile!

    New in PixelRender 1.1
    • Automatic color reduction in Palettize Texture Tool
    • Lots of performance & UI improvements
    • Brand new Sprite Sheet Maker tool for rendering & exporting sprite sheet animations





    Rather than selling PixelRender in the Asset Store, I've decided to try something different. The project is hosted on GitHub & is free to use for non-commercial purposes.

    If you'd like to use PixelRender for commercial purposes, or support this & future kode80 development, commercial licenses are available for purchase from my new online store!

    Full details available here: http://kode80.com/blog/2016/02/23/pixelrender-for-unity3d/index.html
     

    Attached Files:

    Last edited: Mar 9, 2016
    eses and moure like this.
  2. moure

    moure

    Joined:
    Aug 18, 2013
    Posts:
    184
    Thanks a lot for the non commercial verion! I will definetely give it a try and leave you my feedback :)

    P.S. Seems that what you said on twitter on not wanting to deal with the asset store made you create your own, good luck mate!
     
  3. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    You're welcome, I look forward to your feedback!

    I love the Asset Store, but have came to the conclusion that the extra management of external asset/publisher pages, rules, review times etc. just isn't worth the headache (nor 30% cut). I'm missing out on the in-editor ease of promotion of course, which is nerve racking, but after weighing up the pros/cons I've decided I'm ok with rolling those dice.
     
  4. b4c5p4c3

    b4c5p4c3

    Joined:
    Jan 4, 2013
    Posts:
    537
    It looks very cool
     
  5. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Very very interesting...
    Impossible to download the unity package !?!
    e-mail sent...
    6R
     
  6. moure

    moure

    Joined:
    Aug 18, 2013
    Posts:
    184
    Yeah i got that google "warning" too, you need to press on the bottom left of the page the "continue to web page" or something(can t remember the exact wording). Forgot to mention it on my original post too, its something that @kode80 should fix as it is a bit scary to get the warning on an eshop kind of page!
     
  7. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Thanks a lot moure...
    Yes, it worked. But as you said, not very good this kind of warning here.
    Hope they will fix this soon.
    6R
     
  8. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    I just have tested this and it's INCREDIBLE !!!

    A so complete asset to use 3D objects in a such fantastic Pixel Art environment :
    With the Palette Editor and "Constructor" we can modify the existing textures. (To avoid issues, first decrease the number of colors in an external software !)

    Thanks to your camera effects, the in Unity created pixel textures + palette and so on, I could give this nice pixel effect (with or wihtout Dither !) to the 3D animated Toon Soldiers.

    I will try to use Sprite Maker to make 2D animated sprites with all of this...

    Even if I think it's "strange" to have a so powerful 3D engine like Unity and to build 2D pixel games, I think your system simply is CRAZY and FANTASTIC !!!

    A very good job !!!
    6R
     
  9. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    Agreed, thanks for the heads up, it's fixed now.
     
  10. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    Glad to hear you're liking it so far!

    When using the Palettize Texture tool to convert a regular diffuse into an index+palette, any unique color found in the input diffuse texture will be added as a color 'slot' to the output palette. In other words, make sure your diffuse texture only uses colors you want included in the resulting palette.

    My current workflow, once I have a model ready & unwrapped, is to use Blender's texture painting tools to do a very quick color pass, making sure that strength/opacity is set to 100% so that no color blending occurs (as this will result in different shades where I only wanted a solid color), save that texture, then convert and edit the palette in Unity.

    The cool thing about emulating 2D pixel art in 3D (and a big reason I built it) is it allows you to do all kinds of things you wouldn't be able to with 'real' 2D sprites/backgrounds. Everything can be stretched/rotated etc., camera's can move around in 3D space to get interesting angles for cut scenes etc. and of course you have access to 3D effects that don't work in 2D - for example, I threw my SSR shader on the example project last night to test, now I have realtime reflections of my '2D' scene. :cool:
     
  11. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Pixel Art or "simple" Cartoon render (with or without outlines !) because we can have both effects I think.
    You're right : So, you can use 3D options to your 2D environment. It's why I think it's really a great package.
    And especially the animations of the 3D models ! You don't have to draw complex 2D animations in all directions.

    Don't hesitate to add scenes and effects in your package to show us all we can do with it. And add more screenshots here, please !

    I use Paint Shop Pro to automatically decrease color number before using your Palettize Texture tool.

    I understand why you don't want to use the asset store... It's a bad news for us I think because it's so easy to download packages in different projects.
    I hope you will have a lot of success.
    6R
     
  12. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    I'll be sure to add some more examples/screens over time!

    Personally, I've had more issues with the asset store downloader/updater than I have from manual package import. I've had assets that somehow get corrupted and then can't be imported without deleting the whole folder + redownloading, assets that get stuck in download state, scenes that stop working due to some combination of the above etc.

    vs. just keeping a folder of all your manually downloaded packages and doing Import Package->Custom Package... in a new project.

    From a user's perspective, one real benefit I can see is that you get automatic updates of assets via the store, however GitHub allows you to get notifications when projects are updated, so it'd be very easy to get an email whenever I update the PixelRender repo. I am considering starting a mailing list to push out update notifications that way.
     
  13. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    OK !
    I just have tested with a 3D character and a simple barrel...
    Great renders !!! Very cool to be able to use the animations.
    6R
     
  14. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    Awesome, I'd love to see them if you're able to post them.
     
  15. BTStone

    BTStone

    Joined:
    Mar 10, 2012
    Posts:
    1,412
    Already saw this on twitter, looks rad! Won't use it for our current project, but for a side-project (ah...gotta love those side-projects... :D ) or a future one.
     
    kode80 likes this.
  16. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    Thanks. Yup, gotta love those never ending side projects, it's how main projects are born! :D
     
  17. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    ScreenshotPixel2D.png

    It's great to be able to change the colors even after having created the palette. For example here the blob has a darker green texture by default and I could change that in a few seconds thanks to your palette tool.
    And we can mix 2 palettes, crazy !!!

    Here it's a fixed picture but I think your asset is great because even if it looks like 2D it uses 3D models we can rotate, scale, and so on...
    Personally I couldn't draw an animated 2D characters in every directions.

    Other questions (is it possible ?) :
    * Could you add an outline option in your shader (to tick or untick) ? Not only in your camera parameters ! So we could have outlines on the front arms and legs for example. Actually we "only" (but already great !) have an outline around the created picture !?!
    * Could you add another Texture tool to decrease the number of colors within Unity ? So, we don't need to use an external software to do this with existing Textures from 3D models ?
    * Could you add a "WARNING" message to your palettize texture tool to use textures with "a few colors" to avoid a kind of crash of Unity ? The creation of the palette blocks Unity if the Textures have too many colors !!! People could be frustrated and could think your asset doesn't work at all but it's only a question of too many colors ! You explain it in your .pdf file but not sure people read it !?!
    * Could you add an almost empty scene to your package with the elements only we need to start ? I had to delete all the "unuseful" gameobjects to test my characters. So, people can immediately load this prepared scene and test their models/effects. For example the plane scene without the plane, the jellies, and so on but the right scripts, canvas, plane, and so on...

    6R
     
    Last edited: Feb 25, 2016
  18. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    This looks great, good job!

    The outline effect is something I want to expand upon; short term I'm going to add the ability to have separate silhouette and internal outlines, long term I want to make the outline per material and use the material's palette for coloring. As it stands right now, you can get internal outlines by adjusting the depth threshold property of the effect, step up/down in very small increments until you get the amount of internal outlines you want.

    Yes, this is on the roadmap. I also plan on making another tool that will spit back out diffuse textures from the index/palette textures, so you can then take those back into your 3D/paint package for details/editing.

    This is definitely a good idea for the short term, texture size also has an impact on how long the conversion process takes. Long term, I'm going to update the conversion tool so that it runs in the background/gives progress, so that even with big textures it won't appear to lock Unity.

    Yup, this is a great idea!

    Thanks for all your feedback, it's really appreciated.
     
  19. S_Darkwell

    S_Darkwell

    Joined:
    Oct 20, 2013
    Posts:
    320
    @kode80,

    I wonder if you might add functionality similar to the Sprite Baking Studio (3D to 2D).

    Given, it's beyond the current scope of PixelRender, but with discussion of the ability to bake in texture color reduction, such would seem like logical next step to providing an all-in-one solution.

    Thank you!
    - S.
     
  20. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    This is actually already on the roadmap. I'm hoping to include an early implementation in the next release. If you want to check it out before then, keep an eye on the dev branch.
     
    S_Darkwell likes this.
  21. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Blobbies2D.png
    Here is a screenshot with several 3D blobs (looking 2D !)... in various colors I can do within 1 second thanks to your Palette Editor.

    Great to know you will add some nice features to have an all-in-one asset !
    Please, let us know here about updates...

    6R
     
    S_Darkwell likes this.
  22. S_Darkwell

    S_Darkwell

    Joined:
    Oct 20, 2013
    Posts:
    320
    Excellent to hear! This will most definitely be purchase for me, then!

    Thank you so much, and be well. :)
    - S.
     
  23. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    It does seem as if 30% would not cover a headache. If someone is going to take 30% it should indeed be hassle free :) good luck. (btw still waiting for awesome sky rendering - any news there?)
     
    S_Darkwell likes this.
  24. S_Darkwell

    S_Darkwell

    Joined:
    Oct 20, 2013
    Posts:
    320
    That explains why @kode80's name is familiar! I'm following that thread too. Looks outstanding!

    - S.
     
  25. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    He's a talented chap. Did 1 bit ninja as well which is annoyingly addictive.
     
  26. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    Looks awesome! I'll definitely keep this thread updated with PixelRender developments.

    You're too kind! :) I'm hoping to finally release the volumetric cloud renderer in the next few weeks, finally.
     
  27. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    I've been playing a lot of Street Fighter V lately, so decided to try doing some PixelRenders this morning, just for fun.
     

    Attached Files:

    moure and hippocoder like this.
  28. S_Darkwell

    S_Darkwell

    Joined:
    Oct 20, 2013
    Posts:
    320
    License purchased!

    Thank you again for the excellent support via IM!

    Be well!
    - S.
     
    kode80 likes this.
  29. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    You are very welcome. Thank you! :)
     
    S_Darkwell likes this.
  30. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Very nice renders kode80 !
    Could you show us the 3D character in Unity before your Pixelshader ??? To see the difference...
    Do you receive e-mail from your address on your website ? I sent you one and you never replied !?!
    6R
     
  31. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Cat2D.gif
    You wanted to see an animation !?! here is one of the "Animal Friends" cat from the Asset store.
    It's a 3D character with a nice 2D look thanks to your great plugin...
    6R
     
  32. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Cat2dBlue.png
    And the same one with other colors in a few seconds...
    6R
     
  33. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    They're models I extracted from SFV, converted to FBX and then manually retextured, then palettized. So if you watch any SFV videos of Ryu/Ken, those are the meshes.

    I didn't receive the email, doesn't appear to be in spam either.
     
  34. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
    Quick update. I've added a minimal-requirements example scene that you can duplicate as a starting point, sped up texture conversion and added cancelable progress bars, as well as a basic palette reduction pass when converting diffuse textures.

    I've also been working on sprite sheet rendering and export, I posted a vine of the progress here: https://twitter.com/kode80/status/706164897768415232

    Attached below is an example of an exported sprite sheet. If you want to try any of this stuff out, check the develop branch on the GitHub repo (although, obviously be aware it's in development).

    Happy Saturday! :D
     

    Attached Files:

    S_Darkwell likes this.
  35. S_Darkwell

    S_Darkwell

    Joined:
    Oct 20, 2013
    Posts:
    320
    Fantastic! =D

    - S.
     
  36. kode80

    kode80

    Joined:
    Aug 1, 2013
    Posts:
    151
  37. Fab4

    Fab4

    Joined:
    Sep 30, 2012
    Posts:
    114
    How could I have missed this. I will definitely try this and purchase when it works how I imagine.
    Is it possible to set the pixel per unit density in the Shader?
     
  38. taro8

    taro8

    Joined:
    Jan 6, 2016
    Posts:
    1
    I'm really interested in testing this out, but I have some questions:

    * Is it compatible with Unity 5.6?
    * Is there any documentation how to actually use this? I would love to see just a single instance of a workflow from a model into the pixel shaded stuff
     
  39. ECHOxLegend

    ECHOxLegend

    Joined:
    Apr 13, 2017
    Posts:
    1
    Hello there, I would also be really interested in this, and its not quite old, but it seems you haven't posted in a while, I would also like any word on an update for new Unity versions. This just looks so amazing.
     
  40. Kade514

    Kade514

    Joined:
    Sep 7, 2014
    Posts:
    12
    Hi, I just stumbled across your asset and love the way it looks, but I've had a couple of problems getting it working in a side project of mine that I'm making in Unity 5.6. While it initially seemed to work fine in the test scenes you provided, the moment I tried to edit the NormalsExportTest_Palette using the palette editor the shader immediately broke and gave the following error message.

    Code (CSharp):
    1. Shader error in 'kode80/PixelRender/PixelArtShader': invalid subscript 'vertex' 'mul': no matching 2 parameter intrinsic function; Possible intrinsic functions are: mul(float|half|double|min10float|min16float|int|uint|min12int|min16int|min16uint, float|half|double|min10float|min16float|int|uint|min12int|min16int|min16uint) mul(float|half|double|min10float|min16float|int|uint|min12int|min16int|min16uint, floatK|halfK|doubleK|min10floatK|min16floatK|intK|uintK|min12intK|min16intK|min16uintK) mul(float|half|double|min10float|min16float|int|uint|min12int|min16int|min16uint, floatLxK|halfLxK|doubleLxK|min10floatLxK|min16floatLxK|intLxK|uintLxK|min12intLxK|min16intLxK|min16uintLxK) mul(floatM|halfM|doubleM|min10floatM|min16floatM|intM|uintM|min12intM|min16intM|min16uintM, float|half|double|min10float|min16float|int|uint|min12int|min16int|min16uint) mul(floatM|halfM|doubleM|min10floatM|min16floatM|intM|uintM|min12intM|min16intM|min16uintM, floatM|halfM|doubleM|min10floatM|min16floatM|intM|uintM|min12intM|min16intM|min16uintM) mul(floatM|halfM|doubleM|min10floatM|min16floatM|intM|uintM|min12intM|min16intM|min16uintM, floatMxK|halfMxK|doubleMxK|min10floatMxK|min16floatMxK|intMxK|uintMxK|min12intMxK|min16intMxK|min16uintMxK) mul(floatNxM|halfNxM|doubleNxM|min10floatNxM|min16floatNxM|intNxM|uintNxM|min12intNxM|min16intNxM|min16uintNxM, float|half|double|min10float|min16float|int|uint|min12int|min16int|min16uint) mul(floatNxM|halfNxM|doubleNxM|min10floatNxM|min16floatNxM|intNxM|uintNxM|min12intNxM|min16intNxM|min16uintNxM, floatM|halfM|doubleM|min10floatM|min16floatM|intM|uintM|min12intM|min16intM|min16uintM) mul(floatNxM|halfNxM|doubleNxM|min10floatNxM|min16floatNxM|intNxM|uintNxM|min12intNxM|min16intNxM|min16uintNxM, floatMxK|halfMxK|doubleMxK|min10floatMxK|min16floatMxK|intMxK|uintMxK|min12intMxK|min16intMxK|min16uintMxK) at line 110 (on d3d11)
    2.  
    3. Compiling Vertex program with DIRECTIONAL SHADOWS_SCREEN _SHADOWS
    4. Platform defines: UNITY_NO_DXT5nm UNITY_ENABLE_REFLECTION_BUFFERS UNITY_NO_SCREENSPACE_SHADOWS UNITY_PBS_USE_BRDF2 SHADER_API_DESKTOP UNITY_HARDWARE_TIER3 UNITY_COLORSPACE_GAMMA
    Removing and re-importing the 1.1 package you provide doesn't resolve the issue, so I was just wondering if there's anything I can do to resolve this issue, and if not, if there's any chance of a future release that fixes it?

    Edit: looking further into things, this might be a bug with Unity's latest version. *Shrug*
     
    Last edited: Jun 12, 2017
  41. Fab4

    Fab4

    Joined:
    Sep 30, 2012
    Posts:
    114
    It only took me 9 month to test it, but I am blown away. I just had to buy it.
     
  42. nektariosfifes14

    nektariosfifes14

    Joined:
    Jun 25, 2015
    Posts:
    12
    does it increase performance? since it is in 2d? or camera still renders the unseen vertices