Home Coding, Scripting, Shaders

Tech Artist - What are you working on: FOREVER Edition!

1394042444556

Replies

  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    @Kyetja Would also be interested in checking out the Maxfile. Results look great. I've actually been sculpting rocks all week in Zbrush so my brain is still in 'Rock-silhouette-appreciation and admiration- mode' :)
    It's actually quite interesting the amount of CG artists that seem to have a rock fetish.........
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    @Kyetja thanks for the link, mate. Just had a play with it. It is indeed pretty much identical to the setup of the RockGenerator script. :) The stack order and use of a cellular procedural to achieve the faceted look. Great for quickly establishing silhouette without having to hack away in ZB. Thanks for sharing.
  • Kyetja
    Offline / Send Message
    Kyetja polycounter lvl 7
    @musashidan I'll have to give that script a try too then!
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    A test scene I set up a while back to experiment with Phoenix FD's liquid sim results.

    It was also an opportunity to experiment with a workflow test using Craft animation Studios in 3dsMax. Craft is pretty simple to set up but it is a crazy price considering it almost seems like abandonware judging by the ancient videos they use to promote it. That and the fact that it appears to have long-standing issues and can be quite prone to crashing and going nuts randomly. It reminds me of the plugin for Max: Powernurbs. An extremely powerful kit but all but abandoned by the developers and eaten away by ignored bugs.

    The model of the Hummer was a free download of a shit model that I mostly remodeled/kitbashed.

    https://www.youtube.com/watch?v=VYu6U_cJfKg

  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    And this was another one I worked on at the same time with the same tools.

    'Phoenix' typo on the intro is the kind of stupid shit we do when we behave like 3D junkies and forsake bed for just another frame, as we stare transfixed at the achingly slow render buckets crawling across our blurred vision as the sun begins to rise somewhere miles away from our workstations.....

    This project was created as a test to learn both tank rigging in Craft Studio, and using PhoenixFD. The tank itself is half craft simulation and half hand-keying. The plugin was quite buggy and crashed often so I really just wanted the data from the tread sim. The PFD shell burst was set up with a Pflow system linked to the interior of the cannon which releases a short burst of particles that die almost immediately and PFD takes over. Also a non-renderable cylinder was linked to the rear of the shell to drag out a trail of fluid from the PFD sim. Also a wind force was used to influence the speed and direction of the smoke.

    Rayfire and Pflow were used to demolish the wall(which I got a great start with using DebrisMaker2)

    Next it was rendered in Vray in a GEO pass,(with the PFD set to invisible to camera to retain the lighting/shadow data generated by PFD) and an PFD pass(I had to disable the GI here as it was taking an eon to render) The PFD sim is only about 4million cells so it was fast to calculate.

    https://www.youtube.com/watch?v=GOESeKVwA1s


  • TooLzor
    Offline / Send Message
    TooLzor polycounter lvl 10
    Working on my preview panel for Photoshop still.

    Just added multi row preview possibility to it. Gonna do some more self testing then start trying to find some artsy's that wanna give it a shot :hushed:
  • Kyetja
    Offline / Send Message
    Kyetja polycounter lvl 7
    Currently messing around with shaders, I'm trying to create such an effect that moss, snow, etc. are always placed on top of objects.
    The overall texture positioning works as intended, I just need the normal blending to be better and clamp the values on the mask generated by the mesh position a bit more.
    I've seen it done before so it has to be possible!
  • Add3r
    Offline / Send Message
    Add3r polycounter lvl 11
    ArYeS said:
    I've tried to simulate clear-coat material in Unity. I made non-coated version of carbon fibre using Substance Designer (right), then extended Standard unity shader by adding another pass to render coating over it (left). Here is the result:

    Curious if you are handling this with a 0.1 valued displacement node and then extracting the normal and adding a higher spec/gloss value on the sphere geo?  I did something similar for a car paint shader, but have always been curious of more efficient ways to handle this, as duping the whole mesh is not.  
  • Vailias
    Offline / Send Message
    Vailias polycounter lvl 18
    Kyetja said:
    Currently messing around with shaders, I'm trying to create such an effect that moss, snow, etc. are always placed on top of objects.
    The overall texture positioning works as intended, I just need the normal blending to be better and clamp the values on the mask generated by the mesh position a bit more.
    I've seen it done before so it has to be possible!

    Yeah it is. 
    http://polycount.com/discussion/comment/1402961/#Comment_1402961

    I did it in a way about 6 years ago. 
    Idea I ran with was effectively a combination of two calculated masks and a texture based mask to break up the edge detail more. 
    TLDR: Shader network

  • Kyetja
    Offline / Send Message
    Kyetja polycounter lvl 7
    @Vailias
    Cheers man, that is really helpful! I am using something quite similar to this as well. I'm currently messing around to make the moss look more like, well, moss. I also added a mask to make sure not the entire surface is moss. The normal map blending feels wrong on paper, but somehow I dig the effect, might look into it more later.
    Additionally I want to see if I can use some of my height and occlusion maps for some fun masking, but I since I am making it for practice I don't want to dwell on it too long.

    Here it is with some more fuzziness, notice the purple glow at the bottom, it's because the fuzz shading needs some better masking, woops! (EDIT) 
    Actually I just realized I forgot to clamp the final position output to positive values only, the negative values from this created these purple spots,basically at the end of the up vector bit I added a clamp (min = 0, max = 1) , this fixes it.


    And the current blueprint setup.

  • Vailias
    Offline / Send Message
    Vailias polycounter lvl 18
    *deleted Error dup post*
  • Vailias
    Offline / Send Message
    Vailias polycounter lvl 18
    *deleted Error dup post*
  • lluc
    Offline / Send Message
    lluc polycounter lvl 14
    Doing some research with Houdini and procedural assets for games.

  • xvampire
    Offline / Send Message
    xvampire polycounter lvl 14
    Kyetja said:
    Currently messing around with shaders, I'm trying to create such an effect that moss, snow, etc. are always placed on top of objects.
    The overall texture positioning works as intended, I just need the normal blending to be better and clamp the values on the mask generated by the mesh position a bit more.
    I've seen it done before so it has to be possible!
    hi @Kyetja looking cool,   if you don't mind the performance you can use PixelNormal WS to have detailed clamp instead of vertex normal  WS, but if there is no choice perhaps you can use clamp

    https://www.youtube.com/watch?v=j2BEEtpPgdk&t=294s
  • Kyetja
    Offline / Send Message
    Kyetja polycounter lvl 7
    @xvampire
    I actually started of with the PixelNormal WS but it would give me errors when blending my moss normal maps with the rock ones, probably just me messing something up.
    Anyway, I imagine my current method is ever so slightly more efficient? Not sure.
  • xvampire
    Offline / Send Message
    xvampire polycounter lvl 14
    Hi kyetja, pixel normal is actually calculating your final normal output, so it wont make sense to use pixel normal ws on normal map, :)  u can usevertex ws in that case.

    It depends on everyone need and taste of course.. 
  • [HP]
    Offline / Send Message
    [HP] polycounter lvl 17
    kio said:
    made a silly photoshop panel

    its basically a normal color palette. This project was more of a little playground for toying with typescript and photoshop and three.js. Because well ... I like type safety - as JS is just meh. The primitves are rendered in 3D - the resolution of the mesh can be changed with the slider. The colors get fetched through a little back and forth with html canvas. Never touched this stuff - so it was interessting enough to keep going :)






    This is REALLY handy for normal painting, i use something similar but with a pallet. 
  • Neolight
    Offline / Send Message
    Neolight polycounter lvl 10


    Exploring Houdini UE4's procedural features, made a modifiable grid asset that places content browser objects on its points.
  • Demno
    Offline / Send Message
    Demno polycounter lvl 6
    I'm cracking up! Well, I'm making groundcrack patterns to use as a base for decals. My plan is to use the pattern and draw on top of it.


    I also added some beveling and pinching if you want more cartoony, rounded shapes.


    It also has thickness settings if you want to render it out and use it in an isometric setting.

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Kyetja said:
    @musashidan I'll have to give that script a try too then!
    It's pretty straightforward to make a scripted modifier that will generate your stack with a single click. It would give you an easy way to distribute it to the rest of the team. 
  • McGreed
    Offline / Send Message
    McGreed polycounter lvl 15
    Are you guys still using Notepad++ when working with scripts, especially maxscript? Was going to get back into scripting, and read in another thread (which I can't for the life of me remember where it was) that some people recommened some other editors.
  • radiancef0rge
    Offline / Send Message
    radiancef0rge ngon master
    McGreed said:
    Are you guys still using Notepad++ when working with scripts, especially maxscript? Was going to get back into scripting, and read in another thread (which I can't for the life of me remember where it was) that some people recommened some other editors.
    Sublime or Atom
  • McGreed
    Offline / Send Message
    McGreed polycounter lvl 15
    radiancef0rge said:
    Sublime or Atom
    I was looking into Sublime, but wasn't sure if it had syntax for maxscript, so far it looks like I have to do a bit of fiddling to get it, as I did with Notepad++.
  • radiancef0rge
    Offline / Send Message
    radiancef0rge ngon master
    McGreed said:
    radiancef0rge said:
    Sublime or Atom
    I was looking into Sublime, but wasn't sure if it had syntax for maxscript, so far it looks like I have to do a bit of fiddling to get it, as I did with Notepad++.
    The nice thing about sublime and atom is they are great with 3rd party plguins, for example here is a maxscript package that can be installed with the package manager inside sublime
    https://github.com/cb109/sublime3dsmax
    I have not used it myself however. 
  • Hatred
    Offline / Send Message
    Hatred polycounter lvl 18
    Post RBD Sim Cleanup Tool - HOUDINI (Optimization)

    This video demonstrates the purpose and effectiveness of the tool made on cleaning RBD Destruction Simulations (Houdini) to be used in Game Engines. In this case, I am targeting Unreal Engine. Check out the video and let me know what you think! :)

    PS: This is my first post on polycount ever!


    interesting, I would love to use it at my project, have you put this node somewhere?
    [edit] apart from the very bad noise very cool idea. 
  • kio
    Offline / Send Message
    kio polycounter lvl 16
    McGreed ive been working with sublime3dsmax for over two years now - it works pretty much as advertised :)

  • McGreed
    Offline / Send Message
    McGreed polycounter lvl 15
    @radiancef0rge, @kio Cheers, I got it working at home now, seem to work fine. :)
  • kritskiy
    Offline / Send Message
    kritskiy polycounter lvl 10
    Gamut thief in the coming Palettator update

  • Aran Anderson
    Offline / Send Message
    Aran Anderson polycounter lvl 14
    Started writing a Sprite Sheet generator for Photoshop:
    - Specify the sheet size
    - Add in guides
    - Can separate into layers / flatten layers
    - Can reverse the frame order

    Still working on a preview window and ability to delete x frame or repeat x frame.

  • romasm
    Offline / Send Message
    romasm polycounter lvl 3
    Hello all! 
    I'm creating my own real-time rendering software. And here is some refractions through rough surfaces in WIP state.
  • DeepSpaceBanana
    Offline / Send Message
    DeepSpaceBanana polycounter
    Spent some time during lunch to make this candle flame material, no textures only UV manipulation.
    Edit: Updated Images
    without noise


    with noise


    material setup:

  • kritskiy
    Offline / Send Message
    kritskiy polycounter lvl 10
    The last update before release: Gradient Map Generator from active document/selection in Palettator:

  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
  • TooLzor
    Offline / Send Message
    TooLzor polycounter lvl 10
    Started writing a Sprite Sheet generator for Photoshop:
    - Specify the sheet size
    - Add in guides
    - Can separate into layers / flatten layers
    - Can reverse the frame order

    Still working on a preview window and ability to delete x frame or repeat x frame.

    Neat to see someone else doing that too. I made one that does it pretty fast (minus guides at the moment, but that's a pretty neat idea)
  • haiddasalami
    Offline / Send Message
    haiddasalami polycounter lvl 14
    McGreed said:
    radiancef0rge said:
    Sublime or Atom
    I was looking into Sublime, but wasn't sure if it had syntax for maxscript, so far it looks like I have to do a bit of fiddling to get it, as I did with Notepad++.
    @McGreed Bit late to the party but you just need the API file and I think there was a syntax too. Ill post it up if you want

    Never mind missed your follow up post. 
  • JonL
    Hello,
    I would like to present you my tool that allow to use Substance Batchtools easier.
    It is actually in beta test at the company I work for.

    The tool have four main tabs.
    The first one allow to create Sbs files based on Substance Painter maps.
    The second one to compile Sbs files to Sbsar.
    The Decimator is a test who actually use the Simplygon API (C++), I previously used Meshlab server, but Simplygon is more powerful.
    and the settings allows to configure Substance dependencies, alias and some important paths.







  • fire67
    Offline / Send Message
    fire67 polycounter lvl 8
    Unity shader based on Inigo Quilez nice method which breaks tiling repetition. Textures from Game Textures.


  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    ^ I should give this a try in Unreal...
  • radiancef0rge
    Offline / Send Message
    radiancef0rge ngon master
    Nice can you post the reference?
  • fire67
    Offline / Send Message
    fire67 polycounter lvl 8
    Of course, everything is well explained here : http://www.iquilezles.org/www/articles/texturerepetition/texturerepetition.htm
    But this is a heavy effect and this could be optimized.
  • Jakob Gavelli
    Offline / Send Message
    Jakob Gavelli interpolator
    Played around with the not-so-new-anymore trace to UV functionality in Unreal.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    So about the tiling function, it turned out that this is kinda expensive. Also you would probably want method 2. And then I got stuck because I wasnt able to figure out whats that hash4... is that like appending 2 vector 2s into a vector 4? 

    Still, I'm not really sure if this is suitable for games yet.

    Problems continues if you want to do this with the normals. it gets more and more expensive.
  • hannes d
    Offline / Send Message
    hannes d polycounter lvl 12
    i wonder if its possible to do the blending on the uv and then read the texture only once with the blended UV
    I managed to do a basic version of this in a triplanar shader however it doesn't hold up as soon as you try to blend between 2 directions. since blending uvs just stretches and tiles the texture weirdly
  • Overmind5000
    Offline / Send Message
    Overmind5000 polycounter lvl 11
    After a couple days of research, experimentation, and navigating a spaghetti network, I got this post-effect result for Cel-shading. (Mind the missing UE4 logo. I was bored and slapped the Pepsi logo to it, and I didn't want to fix the material.



    I might throw in a CustomDepth mask filter for if one wants the effect isolated on characters only or something.
  • 0xffff
    Offline / Send Message
    0xffff polycounter lvl 3
    fire67 said:
    Of course, everything is well explained here : http://www.iquilezles.org/www/articles/texturerepetition/texturerepetition.htm
    But this is a heavy effect and this could be optimized.
    "Of course, the drawback is the algorith samples the texture 9 times"

    ...

    So in other words probably not even worth considering for use in most actual games then.
  • fire67
    Offline / Send Message
    fire67 polycounter lvl 8
    Yeah this is an expensive method but worth to know. There is an optimized version with less samples here are some examples : https://twitter.com/blackfirestu/status/843822558684286976 (the last column is the optimized versions).

  • woliver
    Offline / Send Message
    woliver polycounter lvl 10
    Fansub said:

    Recreated Seneca Menard's Quick Pipe in Maya for work 

    It's actually three scripts : the first one creates the pipe,second one allows in-viewport attribute editing to change the thickness,divisions and caps toggle.The third one cleans everything left behind the operation.


    Hey Fansub. Your script is really nice and very usefull in maya since its very tedius to make pipes. I decided to try it myself and here is what I came up with. 


    Not as fast as yours but this is the basic idea (:

  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Nice stuff Woliver ! :D doing these type of small scripts in Maya is so much fun <3

    Haven't posted for a loooooong time in here, so here's some UI stuff i did a few months ago for my ADN Modeler Tools plugin.


  • woliver
    Offline / Send Message
    woliver polycounter lvl 10
    Nice Fansub ! I guess you are working with pyqt, right? I got a question about the pipe tool. How you modifiy the different attributes with one dargAttrContext. I gived a try and did some test but I can modify one attribute or varius attributes at the same time. Im kinda lost about how to procede. For now I have to click on the attributes I added to the pipe mesh for the thickness and subdivisions and drag. Some help would be very appreciated :#
  • Fansub
    Offline / Send Message
    Fansub sublime tool
    Nice Fansub ! I guess you are working with pyqt, right?
    Thanks ! this one was all MEL, but tried to give it a more sophisticated look by playing with icons and colors.

    How you modify the different attributes with one dargAttrContext ?
    I generally have a procedure that gives me a toggle control when given an array of attributes. Here's how i do it most of the time. Bear with me if the explanation is a bit simple/obvious ^^'

    Here's the how it's done part :


    - First, i have two methods to create shuffle between attributes : the first method uses a global int variable, and the second one uses the name of the attributes in the array. In this example i'm gonna use the first method.

    - So our array ($AttributeArray) contains three attributes, the radius, height and subdivision axis of a cylinder.

    - We create a global int variable called $AttributeShuffle.

    - The first thing we need to do is create a dragAttr context. We can do that with the following code :

    if ( ` dragAttrContext -exists "WoliverDragCtx" `) { dragAttrContext -reset; }

    else { dragAttrContext WoliverDragCtx; }

    - Next, we hook up the context we just created to the first attribute from our array. The index we give to the array is the global int we previously created.

    dragAttrContext -edit
      -connectTo ( $polyCylinder + "." + $AttributeArray[$AttributeShuffle] )
      FWoliverDragCtx;

    - Finally, we set the current context to our dragAttrContext (WoliverDragCtx).
    setToolTo FastCTRLDrag;
    - Now, this is great but what if our global int value reached a number that is beyond the size of our array ? this is where a quick if/else kicks in ! The following code is generally put at the top of what we just did, just so it checks the value first before doing anything else.

    if ((` attributeExists $AttributeArray[$AttributeShuffle$polyCylinder `) == 0) {
    $FCCTRLShuffle = 0;
    }

    - For some cool visual feedback we can add an inViewMessage that pops up with the name of the attribute.


    string $Outputmsg = ("Current Attribute : " + $AttributeArray[$AttributeShuffle] );

    inViewMessage -amg ("<p style=\"color:#4cbedf;\"> " + $Outputmsg + " </p> ") -dk -pos topCenter -fade ;

    print $Outputmsg; // This print is just to give us both an inViewMessage and a small print, too :-)

    Once we're done we then increase the $AttributeShuffle int value by one. This will give use the next attribute in the array each time you run the code.

    $AttributeShuffle = $AttributeShuffle + 1;

    And this one is a procedure that shuffles your attributes when given an attribute array and a string for the object's name.

    First, this small snippet will create an attribute array, and the second one is just the polyCylinder node.

    <code>polyCylinder = "polyCylinder2"; // This is the name of the polyCylinder node.
    string $AttributeArray[] = {"height","radius","subdivisionsAxis", "subdivisionsHeight"};<br><br>string $

    We can then run the following line of code to create the shuffle :

    <code><code>polyCylinder);ShuffleAttributes($AttributeArray, $

    Finally, here's the procedure :

    global proc ShuffleAttributes(string $AttrsArray[], string $AttrsNode) {<br><br>global int $AttributeShuffle;<br><br>if ((` attributeExists $AttrsArray[$AttributeShuffle] $AttrsNode `) == 0) {<br>$AttributeShuffle = 0;<br>}<br><br>if ( ` dragAttrContext -exists "WoliverDragCtx" `) { dragAttrContext -reset; }<br><br>else { dragAttrContext WoliverDragCtx; }<br><br>dragAttrContext -edit<br>  -connectTo ( $AttrsNode + "." + $AttrsArray[$AttributeShuffle] )<br>  WoliverDragCtx;<br><br>setToolTo WoliverDragCtx;<br><br>string $Outputmsg = ("Current Attribute : " + $AttrsArray[$AttributeShuffle] );<br><br>inViewMessage -amg ("<p style=\"color:#4cbedf;\"> " + $Outputmsg + " </p> ") -dk -pos topCenter -fade ;<br><br>print $Outputmsg; // This print is just to give you an inViewMessage and a small print, too :-)<br><br>$AttributeShuffle = $AttributeShuffle + 1;<br><br>}


    This ended up being a long post hahaha, hope it helps y'all  ! :)

1394042444556
Sign In or Register to comment.