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.
Discussion in 'Assets and Asset Store' started by Amplify_Ricardo, Jul 10, 2018.
Thanks for confirming it, let us know how it works after the rebake.
So you recommend learning shader language, and more particularly how the impostor shader works so I can change it, OR you want to upsell another asset?
Not sure I follow, you mentioned an addition; we're unable to provide that type of custom request at the moment. Since you mentioned shader additions, I provided the available options.
1. The shader can be edited manually; if you're confortable with that, if not we don't recommend it of course.
2. I'm afraid it's not a matter of upselling, it's a matter of actually having a tool that's capable of doing it. This used to be possible with Unity Shader Graph until they locked support for custom output nodes such as ours. If you go back to an early Shader Graph version(SRP only), you might be able to play with it but we don't guarantee that's going to work as expected on later SRP versions.
Apologies for the inconvenience, I wish there was something else we could do.
Does this asset support VR single pass stereo in Unity 2017.4? I'm getting two images (one for each eye)...with the right eye S***ting the object to the right.
I don't think we've tested that recently with 2017, there might be version specific issues depending on the platform.
What's your target HMD, and is the problem present on the editor as well?
Just purchased Amplify Impostor to try it out, using URP with Unity 2019.3.14f1, however when I go to bake, the normals comes out fine but the abledo is full Black, Any idea?
Thank you for your purchase, we appreciate it.
-Did you import the URP package? (AmplifyImpostors\Plugins\EditorResources\RenderPipelinePackages\ImpostorsURP)
-Can you see our URP sample Impostors?
-Are you using a custom shader?
-Is the correct preset set to URP?
Yes, URP package imported
Yes, seeing URP sample Impostor
Yes, I am using a custom shader I made with Unity's ShaderGraph for just the asset/Model material (nothing crazy) for which I am trying to convert into an Amplify Impostor to use as a final LOD asset.
Yes, preset is set to URP.
I'm targeting Oculus Rift and HTC Vive. What do you mean if its in editor as well? If you mean the scene view, no. It only occurs in the HMD.
I just purchased and can see that it's a well made asset that provides a lot of options. That said, my particular use-case is very strange, and may require me to delve into the code a little bit. I am using the camera perspective editor to give my game a particular 'oblique gentleman' camera angle. The cube in the following screenshot best illustrates what I mean.
I am hoping to use amplify impostors as part of my a 2d / 3d asset creation pipeline, which will involve baking a simple unlit 3d model to a sphere imposter (Ideally with only 4 directions, none from the top or bottom), then painting over the resulting albedo texture in photoshop. This should produce a 2d-looking drawing that has full depth-write based on its 3d representation.
My only major question is: If I were to somehow replace the camera matrix in the amplify impostor code, with the one from my configuration of Camera Perspective editor. would that result in impostor images in that particular camera angle?
Thanks for the details, this is most likely caused by the Custom Shader; Amplify Impostor has very specific shader requirements. Usually, we'd recommend using Amplify Shader Editor to create your own custom Bake and Runtime shader.
At one point, we actually supported the creation of Custom Bake/Runtime shaders via Shader Graph but the ability to add our own custom outputs has been since removed.
Just to confirm, you can make regular bakes using the standard URP material, correct?
I was asking if the problem happens in the editor, during play, in the game view. If you send us a small project sample to firstname.lastname@example.org, we would be happy to test it on our side.
Thanks, hope it works for your requirements. However, baking options are somewhat limited to the technique used, there's currently no way to exclude sides; the baking process is guided by your model axis.
I'm wondering if Impostors are right for your project as they would be always visible; for reference, Octahedron impostors break down at close distances, Spherical impostors hold-up better but it the effect cam be noteceable. Perhaps it would be quicker/simpler to create your own 4-direction solution using our Shader Editor, or manually, than to actually hack away at Amplify Impostors.
I can't know for sure if you're going to be able to adapt it to use that specific plugin, it's not something we've explored.
So if I understand correctly, the custom shader I have made with ShaderGraph for the material of my asset, not Impostor baking will only work if I also make a custom impostor shader?
Or should I make my custom Material shader for my assets with Amplify Shader instead of ShaderGraph allowing Amplify Impostor to work as it should?
I can package a small project and email it to you, I think I might have figured a workaround which Ill include in small package scene also, so for my grass or any object needed impostors, I just use Unity's standard URP Material, apply the textures then use Amplify Impostors to bake it out, once done, I then apply my custom made material to my object LODs that has the Impostors that are already saved to it.
Just want to clarify, I've made a custom material shader for my objects to support channel packing, etc within URP and Amplify Impostors would only bake out proper its Normal texture, every other texture it provides is full black.
You don't need custom or ASE shaders, you need a compatible Unity standard shader for it to bake. Otherwise, you're looking at creating a bake and runtime shader as we detail here: http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Impostors/Custom_Baking
This is an advance topic so we totally understand if this is not what you were looking for.
Hello, I'm the one with issues about concave objects. As you say, my object are quite close to the camera so it maybe cause the issue and my object (a small room) have quite several things inside it, all in a single mesh. So is the tool can support that kind of situation?
Hey there, thanks for reaching out.
Distance is a factor, depends on how you're using it. Can you show us an actual example of it's used? We're available privately via the forum or email@example.com if you can't share it here.
Hello Ricardo, has animation been added to impostor?
Animation is still being worked on, we had to rework a few things; turns out it's not as straightforward as it appeared to be. There are some technical issues/limitations that we need to workaround before it's ready to be released.
But it works
I'm interested in reading more about it. At first glance it looks like animation is reading a few very large texture sheet with a shader that animate an offset uv, so, no biggy, right?
I haven't run benchmark, how well do impostor perform with shared memory GPU like that on the Switch?
Not exactly, it's actually generated at runtime, depending on the camera pov, which has its own quirks given that we support full lighting, including casting and receiving shadows. Instead of storing regular texture sheets, you can actually use it on dynamic stuff like skinned meshes or even swaying trees. As soon as we can figure out a few critical issues, we'll add it to the main package.
Performance with static impostors is somewhat comparable to a regular PBR shader, the added complexity is negligible in most cases. However, given the low specs of the Switch, I would recommend avoiding octahedron impostors whenever possible. (our game uses both spherical and octa for more critial stuff)
thanks for the heads up, I believe with the amplify editor it's possible to make a shader impostor compatible. If said shader is more performant than PBR, will the impostor also be more performant than PBR impostor?
And in your tests on the switch, what's the poly count when impostor is more performant than geometry?
Yes, we support it via ASE but it's a bit of a more advanced subject, does allow for custom shader operations. If you're comparing similar shaders it's probably going to be negligible.
Impostor performance does not depend solely on the geometry count, you should replace more complex meshes or meshes that repeat a lot; as for actual poly count, most impostors are probably under 10-20 tris.
I would recommend testing your specific requirements with mock assets.
I'm having a problem I saw mentioned on a question on the old forum: in the editor (both scene and with my Oculus Quest on (working as a PC headset) everything is fine, however when I build for Quest as a native app, the farthest impostors disappear. One of them must be at the limit because as I move my head it looks like it's clipping in and out of the scene.
Is this a known issue? The main idea of using these was to be able to place them far away.
Thanks for reaching out, we don't officially support the Oculus Quest so we don't really have a way to test that out. Perhaps we can assist in debugging the issue on your side.
Does the impostor work when seen from a close distant in the Quest native app? Wondering if this could be specific to the project/platform parameters.
Thank you for your answer! I saw your asset being advertised by a youtuber for Quest development so I thought it was compatible.
Yes, they appear when moved closer, I've tried disabling dynamic occlusion and increasing camera far clipping plane to 2000. The render queues of the impostors are at 2000. Is there anything else you would suggest?
Well, it can work we're just unable to officially support it, for now!
Nothing else disappears at that distance? Not really sure, I would start by checking quality/tier parameters, see if shader precision is lower or something along those lines.
Are you using LOD Groups?
I am not using LOD groups unless Unity implements them by default, as player doesn't move in the scene there's no real need.
I'll have a look at the shader precision thing
P.S. no nothing else disappears at a distance, only the impostors
Unity does not, if you're not using them it shouldn't be a problem.
on the tier settings, my shader quality is set to low, I'm going to see if that makes a difference, although "low" is the recommended setting for mobile apparently.
Yeah, give it a try with high quality to be sure that's not the problem.
Unfortunately it didn't make any difference, any other ideas? I mean Quest is android so it should work, right?
It should but we can't know for sure what's happening there.
Apologies for the inconvenience.
Hi, its a greate tool for impostor purpose.
By the way, i tried to use it for some huge size objects something like ur product presentation .
And my issue is that after baking texture size is 4096 may fit the artist's min requirment, plz check the attachment.
But my target platform is mobile device. I trid to change axis frame and pixel padding with differetn solution, and I couldn't find a way to make a clear shot impostor object with texture size is less than 2048. Would u plz give some advise? Thx!
PS: Unity 2019.3.4f1 + URP 7.4.1
Try using less sides to increase the individual resolution of each view; use a smaller texture size , not 4k. I don't know what's your game type but for building you usually want to use them from quite far a way, distant is a factor.
Cool , thanks！How to use less sides? Modify codes or reduce the vertical and horizontal frames?
Hey there, you'd use Axis Frames parameter which defines the amount of views baked.
With Spherical Impostors, it's possible to have a different amount of Horizontal and Vertical frames; be sure to click the Lock on the right to configure it.
We suffer from unity keyword limit(256) and we found imposter shaders use some global kewords.
Can we make it as local keyword?
Check this screenshots.
Not entirely sure, let me check with one of our AI devs.
Running into a issue with the extendflycam.cs Would I just remove them?
Assets\AmplifyImpostors\Examples\Assets\Scripts\ExtendedFlycam.cs(4,14): error CS0101: The namespace '<global namespace>' already contains a definition for 'ExtendedFlycam'
Assets\AmplifyImpostors\Examples\Assets\Scripts\ExtendedFlycam.cs(33,7): error CS0111: Type 'ExtendedFlycam' already defines a member called 'Start' with the same parameter types
Assets\AmplifyImpostors\Examples\Assets\Scripts\ExtendedFlycam.cs(40,7): error CS0111: Type 'ExtendedFlycam' already defines a member called 'Update' with the same parameter types
Yes, you can just remove it. What's happening there is that you have a class on your project which is not properly enclosed into its own namespace, or perhaps a duplicate of that script; in any case, it's not required by Amplify Impostors.
Is there a way to combine two materials into one for the impostor?
Yes, one of the cool features about Amplify Impostors is that you can combine multiple objects, using different materials, into a single impostor asset.
Are you running into any problems? More often that not, it's caused by not using a compatible shader.
Hi. I am using Unity 2019.4.8f1, URP, and have imported the ImpostorsURP package. I am trying to apply Impostors to NatureManufacture Forest Environment Beech trees, however the Impostors are appearing as all white.
I am applying the StandardURP AmplifyImpostorBakePreset.
Can you please advise?
You'll have to contact the Nature Manufacture developer; Amplify Impostors require a compatible shader. He might already be using Amplify Shader Editor so it should be possible but I can't guarantee it.
Alternatively, use a compatible one such as the Unity Standard or Speedtree shader.
Does this work on terrain? I have a large world with lots of islands which are made up of tiles. Can I make imposter’s of complete islands for distant views?
Afraid not, mesh renderers only.
Depends on how the island is constructed, it could be possible with some preparation but it really depends on how it's setup.(assuming it's using mesh renderers)
No it is Unity terrain
No it is Unity terrain - so I guess the answer is no?
The answer is no, Terrains use their own rendering component.
Apologies for the confusion.
Impostors is working really well for me right now. Would love to see dynamic impostors as it takes a while to add lots of them to every building that is unique.
Still working on that review/showcase but we're close!
One tip: Making sure your scale on the root gameObject is 1,1,1 before creating the Impostor helps a lot when it doesn't work for you. Then scale it up after as needed.