A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
New Unity Live Help updates. Check them out here!
Discussion in 'Assets and Asset Store' started by tomaszek, Jun 23, 2015.
I also didn't mean to sound that personal, but I couldn't resist. Working too hard on this theme...
You've got update ready above. Probably too many users wanted to make update at the same moment and my server went down... (reported by RTP USER that couldn't download my PDF documentation...). Now it seams to be up. But maybe try to roll a dice to know when trying update. Simply it's php based (can't make it better with my internet provider - sorry).
So - try randomly today, tomorrow. You should be able to get the udpate:
EDIT: try to install RTP or Alloy and report me with keywords limit error occurs. I've got suspicious that even if I cleaned the code keywords are still sotred in materials provided with update package - that would break things. Hopefully they got cleaned. If not I need to remove all materials reinstall shaders and redo materials (using Presets - they might be live savers in such case).
It's in there, look in the defines of the shader you want for //#define VERTEX_COLOR_RGB_TO_ALBEDO and uncomment it
Thanks- appreciate the help
If you think I said anything impolite I'm sorry it's just because my English is not good.
I always admire hard workers like you in my heart.
please keep up.
Thanks a lot.
I just downloaded the new version from Tom's website.
Its really good no bug till now and better than that there is no long wait time when changing the shader.
I think it's soon to ask new features but I ask now to see if anyone else have any idea about them or not,I'm not really needing all of these right now but I think some of them can be so useful for most of the users.
1.The feature to disable rain ripples under the model , just like what you've done to the snow shader.
2.The feature to enable snow to other sides and even bottom of models.
3.Saving the snow data using a check-box in playtime ,if ticked you can rotate your object and your snowy object will rotate with it's snow ( This one can be really hard)
4.Rim or falloff, we can even make something like skin shader with this and the translucency feature.
5.Translucency based on a map, RGB (Color ) for the color of translucency and Depth (Alpha) the black areas wont have any translucency.
I know these can be really hard and you already have a plan and lots of other things to do but I hope I can see 1,4 and 5 in near updates.
Sorry for the long comment.
Well, seems like all your requests are already covered by UBER...
1. look at the beginning of my shader there is a lot of defines you can change. Also you'll see that rain droplets are set to vertex color B. Draw it black with any vertex painter and you won't have it there. The same for water - A channel (configurable) - to make any part of mesh dry (for example placed under any shelter, roofing, tent, dense tree leaves).
2. reduce damp by slope value in snow settings then snow will cover whole geometry. You can reduce snow amount on any part of mesh by vertex color as well - g channel. When you decide whole object to be covered by snow and you don't need it to be dynamic - use "plain" shader like in my "static snow" example. It works faster than dynamic snow.
3. unselect select "world mapping" in snow section and you can use it on dynamic, moving objects. However it's advisable to use world mapping on all static objects - works better where 2 objects are sticked togeter - snow won't have any "seams" anywhere. Also it looks better on triplanar shader (no seams for selected triplanar parts as well)
4.rim/fall off - isn't it diffuse scattering that's part of UBER currently ? You can mimic skin shading quite convincing way. Only more advanced techniques like real subsurface scattering (SSS) or techniques for preintegrated skin are not present as UBER is general purpose shader.
5. you've got it - that's why my ear model has visible veins when you look at it against the sunlight. It's placed on occlusion map channel (B - configurable in shader code).
P.S. I realize UBER lacks of any documentation and tutorials, but first I need to make sure everything works and is not broken then I will focus on describing it. It's easy to underestimate UBER w/o docs, but even if they are present - people barely read any documentation (even very short txt files like IMPORTANT_NOTE.txt - nobody read it...)
Not posted here before but I bought RTP a while ago and UBER recently. Not had chance to play properly with them yet as they are for a future project not my current one. They both seem to need a fair bit of shader knowledge which my current basic product doesn't need. I am about to start watching blender tutorials on shaders. Are there any other sites/tutorials you can recommend that will translate well to RTP and UBER usage.
p.s - Do you ever sleep? The amount of replies you give on these two product threads is astounding. It's one thing doing 1 sentence replies but yours are in depth. Have you cloned yourself
Blender tutorials might be good if you'd like to know something on shaders _in general_. Stick to HLSL shaders examples and related stuff. Unity shaders are basically HLSL ones.
p.s. yep, my wife isn't much happy with my involvement, fortunately I plan to take some rest next 2 weeks - short replies on forum -yes -.Fixes, coding work - no. I hope I can submit all critical updates today before I leave.
Under the same location:
Is the newest one version. I fixed the last one issue I'm aware of - keyword limit exceeded because example scene materials had some junky one from my previous work. This is the version I'm submitting today on AssetStore, too.
Most of the people wont read the documents until they run into a problem.
A complete document is really really appreciated.
The new version is outstanding! No memory issues and working great. Thank you for all the hard work optimizing all of the variations and new features.
Thanks for the pointers. I will follow those tutorials and focus on what you said .
Effects on family is one thing a lot of people underestimate when entering any business. In most cases we are doing it for loved ones but they seem most effected, especially in the first few years. There's also the effect of working to any pattern long term. It becomes normal to us but we forget that others may have not adjusted as well/or at all (usually though our wives/husbands are very vocal in letting spouses know when they are not happy - at least my wife is ). It's a juggling act. Even on holiday I struggle to switch off if I know there is work to be done. The problem is that there's always work to be done, I imagine it's worse when customers live in all the worlds time zones. So learning to switch off is something we need to focus on. You can't work 24/7.
Anyway hope you enjoy your next 2 weeks holiday. I say make the most of your time and forget the rest of us here. I say make a post that states you are on holiday and will be unavailable until back - no posts, emails , replies, anything. Or at least request all contact be left unless genuinely critical to your customers business. Everyone deserves a rest and most customers accept that as they like a rest also.
Hope I haven't sounded like giving a lecture. Suppose I am reminding myself just as much.
I don't even really work for clients and I can relate to that. Very well said, reminds me to spend more time with my fiancee myself, although at least she's starting to take an interest herself
If your fiancée takes an interest you are on to a winner I try to include my wife some and she tries to share an interest. Though I think she is just happy I am talking to her about something even if she doesn't understand most of it. Some people even work with their spouses although it's not for everyone
The update works amazingly well Tom, thank you for all your effort in getting the update to the users in time .
congratulation for another great product and thanks for the upgrade price.
Just in case you don't know what to do with your time some feature requests, regarding dynamic snow:
1) Add direction (imagine wind blown snow accumulating on rocks)
2) Add glitter to dynamic snow
and finaly, it would be nice to have the ice block in the sample scene, it really looks great.
Direction other than vertical is possible but I'm not sure this is that common need. Glitter on the snow is implemented already. To use it with snow you need to turn on the glitter feature independetly. Snow has it's own values for glitter, but glitter feature itself need to be active.
I had some issues upgrading with your shaders assigned to Bitmap2Material materials. Upgrading and selecting the Uber shader in B2M caused Unity to crash.
The workaround was to duplicate the B2M material with the blotched shader, this caused the material to revert to default shader.
I could then select the UBER shader without a unity crash. I hope this helps others with issues.
One thing. Could you inlcude a triplanar water shader (for the lack of a better name).
Most of the projects I work on have Rimflow pools. I have been hacking a shader together that applies standard water to horizontal surfaces of mesh and flowing water to the sides. I'm sure you could do better.
Thanks for the tip on substance crashing. With your pool request - it's very specific one... Can be achieved but it's hard to make general purpose shader that cover all possible needs. You would need to tweak the shader code to get desired effect like damping ripple amplitude on flat parts. A part in core.cginc has all info needed - world normal that come from vertex. Get Y axis vaule to determine the 'horizontality' and multiply amplitude of flow by this value to your needs.
A small request for current users - could you rate my package on AssetStore? Of course after you look around. If you need more time or wait for extensive docs - that's OK take your time. But if you feel you can already recommend it to others it would help me there because new users would like to make decisions for ratings based on more entries than current 15 votes.
Kindest Regards, Tom
P.s. thanks for user who updated rating to 5 stars after new uber release.
Could you show an image of the Uber Shader in the inspector? Its important how things are put in and if it requires alpha channel inputs, how convenient those things are and look, half of a shader are how it works on the users end.
Also none of your images show any real world application of an properly textured current gen
asset using it, that would be a important thing to convince people about a shader I'd say ; ) and Interesting of course
+1 I will definitely do asap. Currently I'm abroad but will manage showcase right after this rest time.
Would it be possible to export the tangent and normal textures as images. Are they baked in the actual mesh? I'm trying to use the meshes with procedural geometry and would like to manually tell the shader where to find the correct textures.
Thank you very much for an excellent asset.
Tangents & normals are stored as they are in any mesh - per vertex. There is only one exception - POM Advanced with "mapped" mode (non basic) needs normals and tangents to be baked in texture to trace it along geometry for correct silhouettes resolution. It might be problematic on arbitrary mesh, but for some class of objects like in my example scene like these "corners solved" or torus it wirks fine.
Right click on the header of mesh filter component - there is UBER script hooked that can bake tangents and normals into textures - this is what I did for example objects. I will describe this process in more detail when I'll do some docs and video tuts soon.
Thanks a lot.
I read this before and didn't realize you made a new option tab in the GameObject mesh filter component. My bad.
No need to appologize . Actually it's my bad. I believe I put this in txt file somewhere, but video tut would be better to find it quicker.
Not sure if this was mentioned, but I could not get tessellation working from a greyscale heightmap on the metallic tessellation shader!
It worked fine on the specular setup, and some other heightmaps worked, but the greyscale RGB ones were not working. Wasn't sure why offhand, but I can provide some more details if needed.
Second issue: can't use a detail normal map without also including a detail diffuse (I was previously using a diffuse texture + normal, and then used a detail normal to add more complex lighting detail up close). Worked well to add some close-up detail to objects that would be rough.
I'm using substance database, can I use substance shaders that with this asset?
By default height data is taken from A channel (that's the difference to Unity StandardShader which takes it from G channel). You can configure it in Shaders/UBER_StandardConfig.cginc:
#define PARALLAX_CHANNEL a
set to g
or simply for your heightmaps - check alpha from grayscale and use Alpha8 compression (which is most effective for parallax/tessellation access)
I cannot reproduce your 2nd issue. Detail normalmap works as soon as I select detail normalmap slot.
Anyway - details are meant to work in 3 modes:
1. simple - when you provide mask. Useful for colorising some parts (when color alpha is set to 1) and influencing PBR (when PBR slider is set to 1)
2. textured - when normal or color texture is provided (or both)
3. textured with specular map - like above but as you specify detail spec/gloss map (metall/gloss map) UBER will take this map for managing PBR values as well
You probably want to ask if you can use substances with UBER. Yes you can. Select UBEr as shader for procedural material.
Perfect! Thanks for the hints on the heightmap. Turns out the tessellation doesn't look good without too much of a performance impact for these objects (works a lot better for my terrains than it is on the plant leaves), as I have to crank it up quite high to avoid distortion, but that's quite obviously not a problem with the shader. I'll try out the POM and see how it looks, I'm setting up my top-end graphical settings where most objects get the full treatment.
Found the issue on the normals - the detail PBR setting was maxed, metallic, smoothness, set to the perfect "all black" settings. Dumb moment.
Otherwise, it's working quite well and the phong smoothing is quite fantastic to use for LOD levels on organic objects. Going to try and fit in PN triangles and see how that works, Aras had posted vert/frag code with it a while back.
Has anyone tried an Alloy/Uber comparison? I'm interested in going with one framework if possible, but I'd like to see the Pros/Cons of each if possible.
Could you make a screenshot with a checker heightmap or bricks or something?
I probably will buy it anyway, but somehow every parallax shader I have seen or used looks a bit... wobbly. RTP too. I begin to suspect a problem with my project...
I like the workflow of Uber better than Alloy just because so far it seems faster. If you have a bunch of materials it takes awhile to update because the packed Alloy material needs to regenerate. You also have to create 4 maps and pack them into an Alloy file in order to really make the best use of the features, whereas Uber everything is exposed and drag and drop for quick workflow. Quality wise I cannot say, they both look amazing. Alloy has a better TriPlanar IMO because they let you set a different texture set for each side of the TRIP, which is essential to have if you are using it for voxel terrains or other reasons.
In the newest UBER update you can use them together. So - this fancy lighting approach (GGX) from Alloy can be used with UBER goodies (high-end parallax techniques, translucency, dynamic water, snow, etc). Just use Alloy in deferred and use Alloy&UBER dedicated lighting function.
So - for me it's like they more compliment each other. If you look for lower budget solution, but still with a lot of features Alloy doesn't provide - UBER might be for you:
1. What you find in UBER and don't find in Alloy:
a. advanced parallax techniques (they are really cool - with z write !)
b. DICE's translucency (a bit improved),
c. selective triplanar (with tessellation displacement) - Alloy has classic triplanar approach in 2 variants
d. dynamic water (automatic flow, rain)
e. dynamic snow (Alloy can mimic it to some extent with directional blending shaders)
f. dynamic weather controller
g. workflow closer to Unity Standard Shader (UBER is also based on Unity PBR lighting model)
2. What you find in Alloy and don't find in UBER:
a. more specialised shaders (like dedicated skin, carpaint)
b. GGX PBR (UBER is Unity's PBR close to microfacet model)
c. prototyping shaders
d. area lights (point)
There are probably more differences as pros in Alloy but I haven't played with Alloy too much. Rather tried to fit the two together. For more extensive comparison we should ask users that are more experienced in Alloy.
look at this one. No checker or bricks but big rocks instead:
It will look stable on checker or brick. IMHO I've provided users with the best POM techniques available on the AssetStore which mentioned competitive products can't currently handle in terms of quality and performance. Above screenshot shows z-write feature (not publicly available on assetastore in other products as far as I know) - cylinder correctly intersects the parallaxed cube.
The below screenshot is also POM displaced perpendicular to the surface:
So - polycount is very low while quality is at least decent on the sidewalls
Okay, I believed you. You are right, that's just beautiful.
Could you give me screenshot of material inspector with values that makes it broken ? I have detail normalmap working regardless of other controls state in metallic setup.
For left one part (which is UBER I believe) a hint is - use normalized height values or at least the top parts white. The darker are large parts of the heightmap the more performance is lost to ray trace thru "empty space" . So - your bricks should have highest parts defined as white. Of course I assume your right and left parallaxed planes are placed at the same level in world space. This will make your POM work faster (being able to resolve ray hit with less steps).
The maps are normalized, I'm just using preset values and I haven't played around with it yet.
Edit: am I right, that repeating textures and UV clip on parallax are exclusive?
Yes, UV clip is set after texture coords are transformed. This might be problem I know, will try to make some fix for this.
Tesselation shaders are amazing, im having an issue with seams at UV edges. Is this part of the nature of the tech? Uvwapping really affects how our tesselation is applied, when pushed more than a subtle amount, the mesh breaks at an UVW seam. Thanks
Yes, that's the nature of displacement. It's done along mesh normals with values taken from heightmap, if your mesh has UV seams and height values at seams are not "exactly the same" you'd experience such tearing artifacts.
Although it will take some time to finish and polish the written pdf documentation, there is already something available in my pdf:
I'll let you know when new updates on docs are available.
P.S. You might need to click refresh button in browser when accessing the link 2nd time (that was the case for me in FF to get doc update loaded).
It's not actually broken, it's just a property of PBR - max smoothness + max metallic = black, at least from all the combinations I've tried, it's been that way for the standard shaders too I believe?
https://www.dropbox.com/s/69ppixf5te0l5sr/Screenshot 2015-07-31 19.40.41.png?dl=0
https://www.dropbox.com/s/479q62g119wb7lx/Screenshot 2015-07-31 19.41.12.png?dl=0
However, this is the problem I'm having with diffuse objects;
https://www.dropbox.com/s/jp8voos8yidagnh/Screenshot 2015-07-31 19.44.02.png?dl=0
Works fine there, but adding the detail normal and..
https://www.dropbox.com/s/g2p1jv1exbniy7q/Screenshot 2015-07-31 19.44.12.png?dl=0
I had thought it was fixed, but rather I just ended up with correct lighting, rather than correct colors. It's taking on the diffuse color setting for the secondary map, entirely. It does that in the game view additionally, using Deferred or Forward. If I change the color setting from white it also adjusts the object's color, however, it does appear to be doing 'some' blending.
Edit: Ah, this is it.
https://www.dropbox.com/s/e06vjkhj952et20/Screenshot 2015-07-31 19.53.54.png?dl=0
https://www.dropbox.com/s/e12xr5h1fxash2y/Screenshot 2015-07-31 19.54.11.png?dl=0
It's the alpha on the color property of the secondary maps. The alpha is determing how much of the secondary texture to use, and if it is 255 (or 1.0f, depending on your frame of reference), then it removes the primary diffuse from the picture. It's not quite, though, while it's not taking any of the primary texture, it's still not entirely black as you would think it would be from the color itself, so it's not taking 100% of that.
Simply put, to use the detail normal only, you can set the color alpha to 0. I don't know if that was intentional, but I've got a solution for myself, so I'm happy.
Thanks Tom! The tesselation shaders are amazing for what im creating, especially after realizing i needed to add the height to its alpha channel....then i got very good displacement that matches the diffuse.
How expensive are tesselation shaders vs. Mesh? I assume shaders are faster...
On another note - might I recommend setting the fallback to be the standard and standard specular shaders? Made that tweak personally, I use the LOD settings in shaders for graphical options and the fallback is quite useful as it continually falls back to lower grade shaders just setting the max LOD.
Since it translates pretty directly, and the Standard goes down further, and also falls back to VertexLit, I figured I would note that down. Maybe I missed something on it, but it seems to be working fine in my cases here.
Yes, the way detail maps work might be a bit misleading but I was thinking how to make them most flexible. I described it in my pdf section - look above. Simply alpha of detail color determines where detail color is blended. You can change the way of blending in shader code - defines section. It works as lerp not mulx2 (like Unity has by default).
PBR slider defines how much detail PBR (spec/metallic and smoothness) is taken. This way detail can override primary PBR (for example you can make some parts more rough for wearing effect or more glossy for wet effects).
It depends on which GPU you've got. Modern ones has very fast tessellation units, so you'll probably always gain performance with using more tessellation+displacement comparing to baking the displacement in original mesh. However pixel sized polys in tessellated mesh are always GPU taxing, that's why you has this edge size limiter screen space - triangles won't go below certain size as this is no good. Additionaly you can reduce tessellation with distance. What's interetsting you can even command which aprts of the mesh should be more tessellated and which less using vertex color, but you need to configure this channel in the header of shader code/config.