@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.........
@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.
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.
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.
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!
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.
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!
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
@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.
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
@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.
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.
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.
@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.
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.
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.
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++.
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.
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.
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.
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)
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
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.
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.
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
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.
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 (:
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
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.
- Finally, we set the current context to our dragAttrContext (WoliverDragCtx).
setToolToFastCTRLDrag;
-
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.
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 :
Replies
It's actually quite interesting the amount of CG artists that seem to have a rock fetish.........
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
'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
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
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!
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
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.
https://www.youtube.com/watch?v=j2BEEtpPgdk&t=294s
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.
It depends on everyone need and taste of course..
Exploring Houdini UE4's procedural features, made a modifiable grid asset that places content browser objects on its points.
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.
https://github.com/cb109/sublime3dsmax
I have not used it myself however.
[edit] apart from the very bad noise very cool idea.
- 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.
Edit: Updated Images
without noise
with noise
material setup:
Never mind missed your follow up post.
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.
But this is a heavy effect and this could be optimized.
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.
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
I might throw in a CustomDepth mask filter for if one wants the effect isolated on characters only or something.
...
So in other words probably not even worth considering for use in most actual games then.
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 (:
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.
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 :
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.
-connectTo ( $polyCylinder + "." + $AttributeArray[$AttributeShuffle] )
FWoliverDragCtx;
- Finally, we set the current context to our dragAttrContext (WoliverDragCtx).
$FCCTRLShuffle = 0;
}
- For some cool visual feedback we can add an inViewMessage that pops up with the name of the attribute.
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.
And this one is a procedure that shuffles your attributes when given an attribute array and a string for the object's name.
We can then run the following line of code to create the shuffle :
Finally, here's the procedure :
This ended up being a long post hahaha, hope it helps y'all !