#archived-hdrp
1 messages Β· Page 50 of 1
AFAIK it's generating ECS components from their GO counterparts based on their pre-built equivalents from Unity and so only some things are convertible and even the things that are don't work the same as their GO counterpart component.
The entities and the GO are completely separate in Inject mode
and the data is just copied back and forth (one/two-way sync).
Am I correct?
You are bit oversimplifying it but essentially yes
Any critical oversimplifications or points of note?
I should probably carry this over to #archived-dots .
hello!
is there a way to make directional lights actually in realtime?
I mean, shadows works in realtime
but I have created a surface scattering shader for my clouds, and it works fine when the light stays in one place
but if I want to make the light spin to simulate the time of day, my clouds doesnt update their color based on light direction
Manually rotating the light
Rotation by code
as you can see, the scattering only works when you change betwen game window, and scene window
is there a way to fix this?
maybe should I change something in the shader?
Is transparency sorting axis already supported in URP, or will it be?
I found something in 2D Renderer, but does that mean 2D and 3D does not mix?
does anyone know if there's an easy way to do brightness and contrast sliders using URP? I can't seem to find anything recent on google
@quaint robin using postprocessing?
Forgive me if i'm dumb but I didn't think you could make sliders for that, I thought you just had to switch out the whole pp profile
I can't do it....HDRP looks too pretty. I can't go to URP for significant projects :P.
@quaint robin actually you can modify postprocessing volumes via script, instead of changing the profile
@snow lake I would say that URP is for mobile plattforms or low tier pc's. HDRP has more features than URP, however some important features that are in LWRP and URP are not in HDRP. I guess developers will add those things later
@vernal burrow Yes but HDRP does not work well with ECS and Unity.Physics. HDRP does not apply any indirect light to Entity shadows (pure black).
And using Convert and Inject is a no-go for Unity.Physics.
are you enabling gpu instancing in materials?
I havent implemented ecs on any of my projects, however I heard about the same issue, and they said that the way to fix this is enabling gpu instancing
Here's an example. As you can see there is no indirect lighting of the shadows and it's pitch black:
Apparently, it's an issue with the Hybrid Renderer.
For the note, Game Objects render properly. I just need entities for physics.
apparently Hybrid Renderer is being completely rewritten (to address several issues like this.) something about it on the 2020 roadmap talk
Then, my prediction is it will be deprecated in favor of a fully featured DOTS Editor mode, who knows how long that will take but it certainly seems to be one of the end goals
ah, gotcha. well if you are relying such an early preview feature like Hybrid Renderer you're likely better off working with 2020.1 beta anyway @snow lake
Editor 2020.1 is too unstable at the moment.
@snow lake well hopefully it hits final soon. Stability aside it's so much faster than 2019.3 i feel like it's saving time even with an occasional crash
2019.3 at least has the quick enter/exit play mode / no domain reload option which is a big help
I want HDRP and Havok Physics as PhysX makes me cry inside.
Give me these two and I'm a happy man
oh yeah i hear you. RIP to Physx will be a good day
yeah but entities and HDRP cause that shadow bug you saw.
@snow lake and you are using the built-in PhysX based module, currently?
https://docs.unity3d.com/Manual/com.unity.modules.physics.html
@snow lake not the "new" 100% C# & DOTS based Physics in a preview package?
https://docs.unity3d.com/Packages/com.unity.physics@0.3/manual/index.html
If I don't use Unity.Physics, then yes but the new physics only works on entities so even the env must be converted to an entity but then you get that rendering bug.
ah ok so it's all or nothing
GO + PhysX works fine. I am aiming for HDRP + Unity.Physics .
you are either using the Hybrid renderer, or you have to go 100% DOTS / ECS?
As long as you are using the "conversion workflow", you need the Hybrid Renderer.
right, no gameobjects or monobehaviour if one was to have pure DOTS / ECS project
I am actually comfortable with 100% ECS but not all things
are supported in ECS
screw it
2020.x time..
you def don't need hybrid renderer with dots unless you want to deal with rendering on dots
even hybrid renderer v2 is too buggy / limited atm for me so I'm just using traditional gameobject setup for rendering but run physics and custom physics code on ecs
it's not a big deal atm, DOTS rendering for more limited object counts is probably even worse than what we see on GO side
either way, it wouldn't make a major impact unless you really do some brute force stuff
@turbid matrix What's needed in hybrid v2 in terms of bug fixes / features for you
Hey. Is there a way to perform custom culling with URP? I'm only casually looking, so I'm wondering if someone could point me in the right direction.
@oblique nova Do you mean frustrum, or layer-based culling?
Frustrum
You could use the existing API for that, like so
if(!GeometryUtility.TestPlanesAABB(planes, meshBounds))
return false; //Skip rendering object```
There's also the ScriptableCullingParameters API, but I have no experience with it
Then just use like: Graphics.DrawMesh?
If it passes the culling test, I suppose so!
I see. Cause I tried using Graphics.DrawMesh before asking the question, and in my profiler it still showed up that the Camera was doing some sorts of culling.(granted very little).
Afaik that's inherent to any sort of rendering with a camera
I see, so there isn't really a way for me to "own" the whole culling pipeline?
No sure, I would assume the SRP provides more control over that
Yeah, that's why I asked the question here. Cause I found this: https://docs.unity3d.com/2018.1/Documentation/ScriptReference/Experimental.Rendering.CullResults-visibleRenderers.html, which looked interesting, but it doesn't seem to exist in the non experimental version of SRP
what phone is this?
@jagged canyon show us URP settings
default stuff
basically low AF
trying to get max fps but its like lmao nope
its the default URP template all I did was add a textmeshpro FPS counter
theres an apk if you wanna try it yourself
I dunno how good your phone is
Β―_(γ)_/Β―
i have only Quest VR , and on Quest my ports run at 72 FPS with quite good graphic
on URP
hmmm
well that makes me want a quest
but leaves me disappointed with the phone
I mean this same phone can play my non URP game at 60fps
so Im sure something isnt right
@remote forge well the lighting intensity is already fixed internally but not in the version we got, it is impossible to dial lighting properly when everything changes the moment you hit play. As for the features, my issue is more niche as hybrid rendering v1 nor v2 supports dxr (would want reflections specifically). I know hybridv2 + dxr are being investigated but cant realistically expect it to happen any time soon
I also have tons of issues with dots subscenes and dots physics so I'm just trying to minimize stuff that breaks atm and only use minimal set of things on ecs side
I mean it's fine at this point, things evolve and different feats dont yet play ball together. Just have to come up with solution that gives most of all worlds (which means no hybridv2 or dots subscenes for me)
ahh okay. thanks for sharing.
If you run into anything specific for hybrid v2 in the short term tag me here.
@jagged canyon try renderdoc or even remote frame debug? maybe there's a single offender killing everything π also the fps counter might be off, not sure what solution your are using.
@jagged canyon Try switching the shaders to Simple Lit, this'll be more suitable for mobile. Much like the Standard shader isn't intended to be used on mobile devices.
this is the power of URP?
@jagged canyon Use RenderDocs software to see what you missed to setup correctly
it shows you how the render works on your device and what you need to change
RenderDoc has a unity implementation that lets you run the APK directly from your phone
I'm working on following a tutorial but having problem where one of my C# scripts have an error with not finding RenderTextureFormat
Anyone know how to store/access previous rendered frame with HDRP, so that it would have post-processing applied. I'd imagine it would be possible to blit that to a RT, and somehow use it during next frame but haven't been able to figure it out yet.
@dawn sorrel I'm not sure what you're trying to do but I think RenderTextureFormat enum is UnityEngine namespace.
so if you got a using UnityEngine in start of your code, it should appear in your IDE.
I found out of it, I had ShadowMap instead of Shadowmap
@uncut root so you were right, switching to simple lit shader improves the peformance.... But it still leaves a lot to be desired. Went from 17FPS with the standard shader to a whopping 22FPS using simple lit
@lean crag @hallow belfry I'll try renderdoc but honestly URP performance isn't looking good on android. π¬
yes, but this could be anything
again this is the default URP template, minimal settings, simple lit materials, removed postfx
fps is a "holes in a barrel problem"
yeah but to have this poor performance out of the box...
whatever the weakest link sets the pace
using mobile shader in the old pipeline the same scene is easily 60fps
then it means there's no reason for it to perform worse, with similar computation
so, something is up π you need to figure out what
nah I just quit using URP
for all you know you could be CPU bound
its obviously a rendering issue
if I was CPU bound switching shaders wouldnt have helped
but it did, which means the URP shaders are too much for my device
as the old pipeline shaders perform 5-10x better
fair enough, but 5 fps isn't exactly solid numbers
I think its pretty telling TBH.
urp shaders don't really perform anything more than the old render loop
what happens when everything is just using unlit shaders for example
I'll give that a shot next
if you're back at 60 fps then, it is indeed the issue
but there's granularity there as well
I still think it's this FinalBlit pass which is wasting a lot of time. Pretty sure that unnecessary blit is still in there.
it does have a cost for sure, but that's were profiling tells you exactly how much
I saw it in the small test that I showed you @jagged canyon, but it might not be as heavy on my phone
I think it was like 123 microseconds in RenderDoc
render doc is free, if you have a modern device which connects easily then it's a matter of 20 min to figure it out
I'll read the renderdoc readme and get it set up if this unlit test stumps me
hmmm yeah thats disappointing
1fps increase π
oh boy this renderdoc stuff looks involved
It's just a lot of UI. Once you figure out which buttons to press, it's pretty easy
yeah it's a bit convoluted for sure π
install it, then right click the scene view tab:
I mean no, you actually just need to open the soft since you capture on device sorry π
yeah Im surprised theres not a video tut on youtube
at least nothing recent
the only thing I can find is 6 years old
build in dev mode, and make sure your device has developper mode and remote debug activated
accept the connection from your computer
yes afair
launch render doc : File > Attach to running instance. There you can do the server setup, which installs an app on the phone
then once the server is launched, and you see the logo on the green bg on the phone you can switch context is this very concealed menu
bottom left
once the context is set to be the phone, launch your app
there you'll get a list of apps, and your executable should be in there
(you need to click the "launch" in bottom right of that tab)

yeah Im not sure how to read any of this lol
it looks nice tho
not sure why duration is 0.00
yeah, that would be the postfx stack
disabling the gameobject isnt enough eh?
you can tweak that and maybe turn it off in the urp asset
thanks for recommending renderdoc btw this is exactly what I needed
np π it's a bit opaque, but very good insights
ok disabled postfx in the camera (not sure how I missed that one)
now Im seeing 30fps which is an improvement again
forgot to set application.targetframerate
but things are looking better
Application.targetFrameRate = 60; Im seeing 36fps now....
Best I can eke out
14ms for the whole frame, you should be at 60fps
(16ms or so to hit 60)
so, either your counter is wrong, or you're cpu bound, or there's something I'm missing on the reading of that screenshot
just use remote profiler
you'll probably get a better reading, with a worse case scenario
Remote 5?
no, you can connect to the android build using the profiler in unity
Oh lemme figure that out
if you had renderdoc working this should be straighforward, since usually this uses the same channel afaik
Hey guys, I am getting some weird shadow artifacts in HDRP; the shadow coming off of the house is shading the wall behind it that's fully lit (see Camera Preview):
It's an inverse Godray (black) coming off of the house.
Yeah, it's a "Volumetric Shadow" or Godray shadow
neither
GetComponent<Renderer>().material.SetColor("_Color", Color.red);
nor
GetComponent<Renderer>().material.color = Color.red;
work when using URP/Lit shader, it works tho if i chose for example Unlit/Color shader
how do i change color of a material when using urp
You gotta set _BaseColor instead
where are those properties named?
You can see all the properties listed by using the debug menu with the material selected:
i couldnt find that in the urp docs
yeah π
(not sure if this is the right channel but I think it might be an HDRP thing)
Trying to build a mac version of my team's school project and it's coming up with error's and... I'm not sure if it's telling me it's the pipeline or a part of the pipeline? I'm really lost at how to fix this error for our game's build (for playtesting)...
[Nevermind found it! we had OpenGL and didn't know you had to swap to metal!]
So, noob here, trying to write my own SRP to get a better understanding of things.
So far I can render geo, shadows, and have a very basic post processor thingy.
I basically render everything to a rt instead of to the screen, which I then blit using a simple shader turning things red back to the screen.
Now, I can get color and depth from the camera this way, but am confused about getting info like normals etc to use in my post shader.
I am now thinking to add another pass which will render all the geo using a shader which shows normals to another rt. This means I am rendering the geo at least twice though, once for color/depth, and once for normals(color).. Is this the right idea?
@iron root Yes, but normally you would package depth and normals so you can still have alpha in the color texture.
Ok great! thanks a lot for the reply
You can do that with a bit of a hack
The default material is defined in the SRP Asset class, where for Universal it's just hard coded to the default URP material.
Yeah, I assume it's using that
Though, I haven't actually tested overriding this property myself, I inherit UniversalRenderPipelineAsset for a different reason.
Btw, if you want VFX Graph to work with your custom URP Asset type, you have to name it UniversalRenderPipelineAsset to match the original, because it uses the type name to load resources.
@snow lake looks like contact shadows, probably you have them enabled with wrong settings
So, I am trying to remake my own depthnormals shader atm.
I found the Hidden/Internal-DepthNormalsTexture, which uses the COMPUTE_VIEW_NORMAL macro on the vertex normal
to convert it to view space from what I understand.
that macro looks like this #define COMPUTE_VIEW_NORMAL mul((float3x3)UNITY_MATRIX_IT_MV, input.normal).
So, as I understand it, this means it is multiplying the normal with the UNITY_MATRIX_IT_MV matrix.
This matrix is defined in some cginclude file, I don't know where this file is though, and I am using hlsl. Docs say this is supposed to be included automatically? though that seems not to be the case for me, perhaps because I am using HLSL blocks?
So the question, can I include this file or find it somewhere, and could someone tell me what this matrix looks like, how does unity supply it, etc?
How can I remake this myself, or where should I look to grab whatever unity gives me etc?
I am trying to improve my understanding here, so not really looking for just a quick fix on 'do this to get it working'
Thanks!
@iron root If you are using HLSL blocks, are you writing for an SRP? (probably a dumb question, just noticed this is the #archived-hdrp chat).
URP defines the matrices in Input.hlsl which you could include assuming you are using URP.
URP seems to be defining them like so : #define UNITY_MATRIX_M unity_ObjectToWorld #define UNITY_MATRIX_I_M unity_WorldToObject #define UNITY_MATRIX_V unity_MatrixV #define UNITY_MATRIX_I_V unity_MatrixInvV ... #define UNITY_MATRIX_IT_MV transpose(mul(UNITY_MATRIX_I_M, UNITY_MATRIX_I_V)) ...
I am making an SRP from scratch atm to learn more about them.
I found those yeah. Digging through URP to see where it gets all this stuff from
SafeNormalize(mul(input.normalOS, (float3x3) GetWorldToViewMatrix()));
Found it, its grabbing stuff from Core, in a hlsl file called, wait for it, SpaceTransforms
Is someone aware of a vr mirror shader working with HDRP ? The only one I found in asset store doesn't work for HDRP
I'm sure it is, but it depends on how the thing is implemented. I suppose a VR mirror is nothing more than a rendertexture sourced from a webcam or something like that?
@blissful geode not sure if these link can help you. i collected them a while ago to learn how mirrors could work:
https://assetstore.unity.com/packages/vfx/shaders/urp-lwrp-mirror-shaders-135215
https://www.youtube.com/watch?v=JBLFADaEmnU
https://www.youtube.com/watch?v=kozDAT_f1ZU
Yeah, saddly none of them would help me for hdrp
I mean i already have one for built in, but i cannot port my game until there is one for hdrp. It's too much work to make my own only for this game. But thanks you, I appreciate the answer.
does anyone know how to kind of make the urp lit shader but in shader graph? what settings do you have to use for the texture assets? specular map for example ?
ive gotten the other maps to look lik ethey work but the specular one isnt working right
@blissful geode have you looked at planar reflection probes in HDRP ?
I didn't. Does it support realtime and vr ?
Well i'll dig it, thank you !
I mean, it's worth trying
Yup definitively π
@ember breach Yes, I was able to fix them, thanks for point that out.
if I am doing dynamic resolution with URP, should i change ScalableBufferManager's size or my pipeline asset.scaleFactor?
i don`t understand how this pipeline works can anyone explain me out , i was watching tutorial he said use light weight RP , i install then when i create a PBR shader it shows an error . i got HDRP
@dawn sorrel you don't have proper SRP asset on your project settings->graphics
PBR Graph works also on HDRP so that's not an issue
So how to do that
since you are new to all this, I'd recommend running HDRP wizard through, like open the wizard and hit that "Fix All" button
After fixing what I have to do @0lento#8809
could try wiping the library and trying again
i create new project now
in the shader editor, inc/dec a vector 1 X(1) value with the mouse -- is there any node to add to make it a finer control over value change?
Is shader graph for creating custom shaders to make textures for when you import characters that you canβt upgrade the asset quality?
Hopefully that makes sense
do i have to anything now
i want to make water
so using hdrp can i make ocean water
@turbid matrix
i made a water shasder but after i saved it that shader did not apply on my plane
is there any performance difference between using URP resolution scale and the scalable buffer manager?
for dynamic resolution
@olive crag Shadergraph, is to create shaders. Point.
@dawn sorrel Yes, you can make ocean water shader with shadergraph and HDRP
@olive crag But I'm not sure to understand what you want to do π
Is there a reason that tri-planar textures don't show up through raytraced refraction/reflections?
I moved the glass pane a litte, the green checkmark show the floor directly showing the texture properly, through the glass is goes bad
non-triplanar it does show up:
and if I set the material's render pass to 'raytrace' it doesn't show at all anymore:
So can I conclude that tri-planar is currently not compatible with raytracing?
This might indeed probably be missing, thanks for reporting π
Hey Unity people, you might want to update descriptions on sites like https://github.com/Unity-Technologies/ShaderGraph to point to the new Graphics repo - these still pop up when googling for e.g. "Unity ShaderGraph", so better avoid leading people into 404s
@scarlet hull do you any good tutorial for making realistic water
I found some on utube but they use lightweight rp or 3rd party
@idle robin What version of Unity + HDRP are you using ?
@scarlet hull
Do you mind trying to update to HDRP7.3.1 ?
Hey everyone, my character is lighten up by point lights 2D from the URP package, but I don't want that. I thought about using the layers, but it seems that we can't. Is there anyway to avoid that?
Hi when I try to open HDRP I get this
@dawn sorrel try an unlit shader
What does lit stand for by the way?
short for lit up as in illuminated, aka receives light
Ah ok thanks Draydak
@rich spade If i do that my character doesn't get any light and is totally black (since he doesn't get the global light)
But I canβt open HDRP anymore for some reason
I get that failed to resolve template error
My bad, it's working, thanks a lot!
ok π
I thought I already tried that for some reason
was going to suggest a custom shader and use a specified light direction which could be fixed or passed to the shader.
nice, best of luck! π
Got any ideas on why Iβm getting this failed to resolve template error anyone?
I wasnβt having any problems before
oh, ouch
might take long, but try deleting the library folder of the project before re-opening ?
trying agian, now with scene/game view closed.. goes faster as well
@olive crag Do you have enough space on your C: ?
I noticed some crashes when manipulation large amount of objects while on game view, while it works fine on scene view.
Trying to build a depthnormal shader thingy for my custom SRP to use for post etc.
But I don't really quite know what I am doing here and not sure if I understand what I see from looking at urp and shaders etc ;)
Questions/thoughts I have.
So, position from the vertex is in OS.
Transforming it to HClip space is needed to for the fragment shader to position the fragments properly?
HClip space is the space the view sees, like a box, not yet distorted by perspective etc. so hclip.x is left right, y is top bottom, and z is depth (limited be the camera near and far clip yes?)
so to get depth I just need to grab the hclip.z?
I can't help with shaders and almost didn't understand a thing x) (Im saying that because I don't want you to think that i don't care :p)
I have a question, how could i make an object to have receive no shadow, but to receive light?
(Im using URP package)
can't you just mark the objects material to not produce shadows? @dawn sorrel
Or on the object properties itself?
@scarlet hull.. almost done rebuilding the library.. in the editor crashlog I found the material the converter was crashing at so I took that one out.. hope it goes better in the next run..
it's quite a heavy project .. 8 episodes worth of TV show home remodeling stuff
@iron root Sadly i think not
That's what creates the shadow
As for the "Target sorting layers" i only have this
does turning off the 'cast shadows' not do exactly what you need?
Well no, because it will not cast shadow, however i want it to cast a shadow, but not on every object
I'm not familiar with the 2D stuff, but isn't that the definition per object? each object will be an instance so it's not global. How do you know which need to cast shadow and which don't?
oh it's to do with the sorting order of the shadows... I see the problem
@dawn sorrel you need to have the object's layer set to something other than default, like tree or something relevant. The target sorting-layers then needs to be set to terrain and terrain needs to be assigned a terrain layer. (I think) but it's 2D so I'm bad, just trying to help π
I could edit the shape, yes, but later in the game that block falls
I've got tons of custom layers, but i can't choose anything else than those choices
oh π€
URP doesn't let us choose on wich layer we can add shadows or not
same for the light, it"s everything that has a lit material, or nothing, but we can't set like, light one light object 1 without lighting up object two and light two lighting only object 2
If you want an object to get receive light, it has to receive every lights, you can't make it affected by just one
supposedly in "tags and layers" you can add more sorting layers. But that just means you can assign a light to certain sprites. It does not affect actual z priority, so doesn't help
@idle robin @scarlet hull upgrade between different hdrp versions is a bit pain currently if you use dxr because you get easily stuck with older hdrp config package. I dunno what is preferred way to upgrade but I always manually wipe the localpackages folder (where hdrp wizard places that config package copy), update the hdrp version then and then run hdrp wizard again to get the updated hdrp config package again there
This is far from ideal workflow IMO
Just pointing this out because mismatching config package could be reason it kept crashing on Jonathan here
Yes, indeed, I forgot that.
We don't have an elegant way to update that local package for the moment, sorry π¦
It is even bit more complicated when running hdrp from git fork as I need to manually point the config package to git forks folder every time again. Hdrp wizard then moves it pointing back to localpackages after it copies it :D
I should just write some script to do it for me..
@turbid matrix Good to know.. right know I find it's crashing on all materials that have a mono behaviour in them for some reason.. like so --- !u!114 &-2363913958809273500 MonoBehaviour: m_ObjectHideFlags: 11 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3} m_Name: m_EditorClassIdentifier: version: 2 --- !u!21 &2100
strike that..
but every time I delete a material and restart unity after a crash it starts all over again at 0/4000+ materials.. it came 75% last time..
I think there is a massive memory leak in the material re-importer... it's now using 102 of my 128GB of memory and keeps climbing slowly
well.. I took out all the scenes and their respective assets and adding them back 1 by 1 and now it looks to be all right.. the crashing was probably due ot the sheer amount of stuff...
is it possible to use URP/SRP Batcher on particle system? [i mean huge amount of particle sprites]
@scarlet hull anyways.. triplanar/DRX is working in 7.3.1 (blue paint stripes on wall are triplanar mapped) You can see them in the helmet and through the glass
good way to keep users busy
(URP is not active anymore in that project)
@lyric ravine I think if you are in debug mode you can get around that but yeah mutual dependency is a thing
Yes I got out of it with Debug mode and replacing the script π still reported it as a bug, as this is with URP already disabled (and the bottom check is a custom one, not typical component check)
Case 1240632 if you're interested, which is actually just the consequence of Case 1240626 (you can't turn a Camera into an XR rig in URP since, well, the converter complains about "UniversalAdditionalCameraData" as "unknown script, can't create XR rig") - at this point it becomes a UX issue and not just an annoyance
Soo.. simple urp mobile project. Performance is decent but the mobile gets pretty hot within a few minutes (Note8 and S10). Done all the typical optimizations. The only thing that really makes a difference is turning off Post-processing (only using Tonemapping, Color lookup/adjustments). Anyone have any experience with URP + PP on mobile?
Every couple of seconds I get these massive spikes in my pretty simple scene. Any ideas on how to fix this?
Materials are using the standard shader
What version of Unity are you running? And have you tried the incremental GC?
Have hybrid renderer v1 installed
2019.3.10f1
upgraded hybrid renderer from 0.4.1 to 0.4.2 now it's Unity.Physics.Systems.BuildPhysicsWorld causing spikes (and even bigger ones)
#archived-dots would be more relevant channel for that
how should i handle graphics related assets on the asset store that requires rendering pipeline specific code? Using namespaces for urp and hdrp in projects that dont have those packages will give compilation errors, are there macros for me to check for package installations for this? Then I assume I would create folders specifically for different code for different pipelines? Or is there a way within asset store publishing stuff to specify separate packages?
hmmmm
so I'm guessing these RenderFromCamera calls are there so you can basically render individual elements from other camera that people would have used camera stacking for in the past
I am using the standard renderer but I think my graphics (the lighting) looks very weird, as if its graphics from 2005. I think there is something wrong in my set up. I have the color space on "linear" and quality on "fantastic". What is wrong with my render?
Do I have to enable this "fantastic" quality somewhere maybe? I have it here enabled https://i.imgur.com/jm923LV.png
Is URP and HDRP actually usable for a real project now? without having massive amounts of missing/broken features?
usable or not it's relative to each project. But if you expecting parity with legacy pipeline, then no. There's lot of built in stuff that not supported/available on current SRP
That's true, and the same thing can be said the other way around. There are things you can do with SRPs that you can't do with the built-in render pipeline.
As a rough guide, for those with hdrp experience, is it possible to target 120fps with a good looking desktop game, post processing and all? Last time I tried, just rendering the sample scene was quite intensive - unsure if that's a base cost and it scales well?
@indigo summit @broken lichen eh... well... latest 2019.3 => create new hdrp project => opens first time, editor spams errors...
@sharp hatch What are the errors?
something in the post processing file throwing a null ref over and over
i just gave up and closed it down right away
Just test it, 2019.10 creating new project => HDRP template. I'm not getting any error π€
That's one way of handling errors
if it doesn't work in a fresh project, big chance of it working for a real finished project
You mean you believe no one has been able to use HDRP for anything because as soon as they create a project, they get an error?
The point I was trying to make is maybe it's not an issue everyone is getting, as @indigo summit showed
But I agree, it's not great if a fresh project has errors
I guess that was my interpretation
I'm just tired of all preview features, half broken packages, etc.
Nothing being solid and working.
Still stuck on the same tech as engine used in 2016 because nothing they've promised has been fully delivered as working tech in ~4 years
But the old tech isn't getting enough bugfixes
And the new stuff is broken (should say: not finished... in eternal preview state)
Β―_(γ)_/Β―
I definitely think both SRPs should still be in preview
They're still very usable even in their preview state and I'm glad that we have the option to use them
Really? they are usable?
Asset developers have given up supporting them
making any custom shaders is hell
and every update unity just screws it more
The option to make your own render pipeline was disabled some time ago due to changes in the system
at this point HDRP and URP are basically the only thing available
that you have access to the source is very far from opensource
the development is not in the open on github, you can't PR or open issues and nothing is happening on them
they are a trainwreck and unfinished and broken
the legacy renderer that everyone uses in their production games (including mine) is getting 0 updates or fixes
and we are stuck in this limbo for 4 years
i should be crying.
Recently I got a chance to play with Unigine, and how is it that 50 russians in a bunker in Siberia can make a better render engine than a multi-million dollar firm with 1000s of employees.
Some of those points I haven't heard about. What was the change that disabled making your own render pipeline?
LOL
You haven't? read some of this. π https://forum.unity.com/threads/can-unity-please-try-documenting-changes-to-the-shader-system-this-is-absurd.834742/
@summer berry I have seen this thread. I agree with this. But what does this have to do with writing your own scriptable render pipeline?
it was mentioned within if you read it
i dont know it was not really my main point
the point is that apparently it's still unsusable
and the tech that is actually used by customers is abandoned
.
The state it's in now definitely makes it very difficult for asset store publishers
Difficult for game developers in the sense that if you upgrade the package, your custom stuff will break?
Similar to how if you upgrade Unity, your stuff can break too?
For asset store publishers, that point is valid because they have to support all the latest versions of the render pipelines and that's very difficult
As a game developer, you shouldn't be constantly upgrading the package unless you have to for a bug fix or something
Just like how you shouldn't constantly be upgrading the Unity version you're using
I think I get what you mean by the SRPs not being completely open source, since some of the functionality is in the native engine code itself
EVERY real production game is on an LTS build lol.
The point is not upgrading
don't you see what is here is not complete and unfinished and unstable?
after all these years?
I already said, I think the SRPs should still be in preview
I don't get why they aren't still
I'm currently using URP for a game I'm building. I haven't finished it, I'll undoubtedly run into issues with URP as I have in the past, so far it's been good.
If it really is as bad as you make it out to be, I'll find out soon enough and I'll tell you
no, i don't care about preview or unfinished stuff, they should agree they made a giant misstep, by current predictions even 2020.3 LTS will not have a stable renderer, so they should hold up, and fix that what people actually use right now.
It is as bad as he says, no studio i work with or talk to uses URP or HDRP
Sure, I'm not saying they should abandon the built-in renderer. I wasn't aware that they have as you claim.
Because they don't work out of the box, yes you can MAKE them work with CONSIDERABLE effort, for some use cases.
build-in hasen't had any meaninfull update since end of 2017
even bugfixes are rare
and bugfixes are even more rare being backported to 2018.4 LTS
Every company i know that makes actual production games stay far away from SRP
@sharp hatch And it's useful for me so far and I'm glad I have the option to use it. It's far from ready to replace the built-in pipeline
That wouldn't be a problem
if legacy pipe
wasn't dead since 3 years
nothing has been fixed or changed other than CRITICAL stuff
I wasn't aware that it was
same with mecanim/playables
also abandoned lol
for the new (not yet even released afaik?) dots animation API
basically "Unity" then
Companies like my own mostly roll our own solutions for things because Unity is very lacking as always.
UNET abadoned, new NetCode not ready
FWIW we basically use unity as a glorified rendering/audio/ui frontend dont do any gamelogic in it
because shit is unfixed, broken, etc.
so tired of this
invested a decade of my career into Unity
7 years for me
and EVERYTHING is just broken atm
And no end in sight
not even in 2020 timecycle
maybe 2021.3 LTS or 2022.3 LTS
but doubtfull
My company won't wait that long, would move to competition, and I've seen so many other companies move already.
Maybe I'm still in denial, because speaking from the perspective of a small indie studio with only Unity experience and VR build requirements, there aren't many other engines available
There's a lot of false info here
Built in physics havent been dropped. They just upgraded physx to 4.1 on 2019.3 and implemented articulated joints on 2020.1 for it (new feature)
Each year has brought improvements to the "old" built-in physics
I can make a list if needed
As for hdrp not working out of the box... This happens for few reasons.. It mainly boils down on people not reading docs + hdrp settings being scattered all around
well i work in studios where are we already use HDRP and URP , ofc its has few problems in both pipelines, but its not critical as year before
and Unity fixing those problems by time
At simplest, you install hdrp package, run hdrp wizard and upgrade materials to hdrp
i'm didnt use buil-in pipeline for a year
Everyone does agree that online multiplayer is a mess in unity. It has always been. It is basically why companies like exit games exist
(Photon)
I wouldnt say that has dramatically gotten to worse in recent years as it always sucked
create own networking - 6 month of work and future 12 month of polish netcode
Also having used unitys competitors for years, can tell that grass isnt always greener on the other side. Each engine has their own lackings and painpoints
From my experience tho, there isnt any alternative that offers as rapid iteration times on your code as unity does. And this also includes c# engine parts on unity, like srps
For that it is not even competition. Unity destroys others on that aspect
As for dots.. It is in preview and Unity is only now building better tooling for it. You shouldnt even knowledge it exists if you look for production ready things - or just limit yourself to job system and burst (which both are released techs unlike ecs side of dots)
gdc vault go tons of new virtual talks for gdc2020, including these raytracing ones:
https://www.gdcvault.com/play/1026721/RTX-Ray-Tracing-Best-Practices
https://www.gdcvault.com/play/1026722/RTXGI-Scalable-Ray-Traced-Global
https://www.gdcvault.com/play/1026730/Towards-Real-time-Ray-Tracing
also https://www.gdcvault.com/play/1026691/Variable-Rate-Shading-Tier-1 (slides only)
Just getting started with Unity for 3d animated short films. I am assuming that HDRP is the way to go for this. Are you all suggesting that it is a mistake to use HDRP in this context?
Awesome. Thx.
2020.2.0a8 out now... this new deltatime code for DX11 is amazing!
it's like spot on all the time now
this will help on getting those butter smooth visuals since there's no longer a difference between actual rendering time and what our code sees
to bad that wont be backported to LTS releases
you've followed the thread? π
yes
nobody listened
but it's also been way worse on unreal
and now unity wont fix it in the versions people are actually using to launch games
I'm just happy they've finally addressed this
but like I wrote on the thread, it does make sense they won't roll this immediately on LTS
this is new code that could break in many ways, and they only support DX11 on the first iteration
have you seen the source code?
I do get that it would make sense to backport 2019 LTS but the devs response made it sound like it's quite undertaking for them so it's not happening
I know how the old code worked
but no, I haven't seen it
Then don't speak in such definitive terms π
either way, nobody can tell for sure if this has some negative impacts yet
even smallest changes can have weird side effects
anyway, I wouldn't lose hope on 2019 LTS backport on this yet. Pretty sure there's been cases in past where they've bent their stance when enough people put pressure to do so
but at the same time, it's way too early to even start discussing about the backporting when the feat has landed on one alpha
I do love the initial impression tho
I also lost faith on this getting addressed after Unity just closed the tracked issue π I've tested this having been an issue on unity all the way back to Unity 3 days (and I can't test older).
What about a non vsync case
why when i use both latest preview hdrp and preview hdrp config if i want to use HDRP+DXR it tells me that "there is an issue with DXR shader config" and when i click fix, it resets HDRP Config to an older version and i get my console filled with errors? (edit: i just noticed they have different preview numbers,13 for HDRP and 15 for HDRP Config. why?)
@summer berry I dunno how to even measure that
that being said, I'm testing the things here that are trivial to test..
so far both exclusive fullscreen and fullscreen window have been solid with vsync on
but then when using in windowed, everything is noisy again (I dunno if vsync even works properly on windowed)
also the nice rock solid DTs totally broke when using Unity on multi-display mode
but it's worth noting latter isn't typical use case at all
and I also mixed it with 2x 60Hz and 1x 144Hz monitors
I need to check how the windowed and multimonitor worked on a7
they are weirdly consistent but values jump above and beyond the right value
it's bit hard to see from that but basically fullscreen modes are now both spot on
and windowed and multimonitor get same offset above and beyond the actual rate
actually the windowed mode works spot on too unless you run it on mixed update rate monitors
if I force my main 144Hz monitor to run at 60Hz, it's all fine again
Steps to reproduce: 1. Open user provided project 2. Build and run 3. Inspect camera movement jittering -- When ran in Fullscreen Wi...
However, there's an optimization that Windows compositor can do when the window covers the whole screen (windowed fullscreen mode) where it does the compositing separately. The issue tracked above was that Unity was not able to take advantage of this optimization, and we fixed it in 2019.1. However, I don't think it's possible to fix for windowed mode.```
so, it's just not trivial to fix this corner case
I dunno if many people actually want to play on windowed mode though (or if people who do that in general would have mixed monitor setups as well)
by this I mean the actual window with borders and top bar, not the borderless fullscreen window
I'm pulling my hair out here. I recently switched to URP and after fixing several issues I got things looking pretty good. Then I went to make a build and... black screen. No error logs in the player. Game logic plays fine. Sound works. Scenes change. But all scenes are black in builds in both x86 and 64 bit Windows builds. I have no idea what else to try.
@rare geode if you are using custom shaders, make sure they are in the included list. I had an issue around GUI of all things which should have been included as default.
π€ I don't remember it, there was something odd I had to do... perhaps try a build with GUI switched off to see if that is the issue or postprocessing. it was something which affected whole screen area, for me at-least.
The game is almost completely UI.
ah π
But I can try it.
it's probably something simple, maybe a missed conversion on an object for shader.
Let me just double check that the shaders the UI is actually using are included first.
Wait, do I have to use new materials for the UI for the build to work?
they need to be urp compatible in their setup. so just make sure the shader selected is either a custom one or using the built in universal shaders.
Ah, so I need to make sure they aren't usin the old UI default.
I just checked. It's still a black screen with all objects disabled except the camera.
The only thing I can think of is that maybe it's doing something it shouldn't be with regards to lighting.
Or shadows.
Actually, no. Even that should still show the screen clear color.
Are your quality settings pointing to valid render pipelines?
Yes, I changed that earlier.
All quality settings are pointing to the same pipeline.
I'm just not sure what could be causing this.
Maybe a camera setting?
perhaps try making a simple scene and build that, one object. very basic etc.
is this pc or mac?
PC
I'll try that.
Still seems to be a black screen on build.
What could possibly be different between build and editor on an empty scene?
π€ it's very strange, if was me I would probably create a new URP project and test the demo scene. If that works, compare settings
I did that a few days ago but I never bothered to actually build it and see if that worked.
I'll try that.
What boggles my mind is that there's no player errors logged.
you could try debugging through... renderDoc (think that's the one) it's not an area I've delved into tbh.
No idea where to begin there, but I'll try this test project first.
Fresh builds take forever.
yea it's to do with the shader cache I believe, which I deleted last week from my project to try and resolve something. Took most of day to do first build after that π€ I hope it wasn't to fix the black screen issue.
If the separate project works, maybe shader cache related (wonder if can do a transplant). However my memory is fried (hay-fever) so I will not suggest deleting it until every other option eliminated.
Hopefully someone else will chime in with better idea before then ^^
Hmm... well I don't want to speculate until seeing if this fresh project works in build.
If this doesn't work then the problem is more likely to be some issue with the whole pipeline's default settings and my rig.
I did have to make a change to the test project before it worked in editor a few days ago. I had to remove d3d11 from the top of the api list.
But that change was done on both projects.
Well that took forever and a half, but it built and it's not a black screen.
I'll come back to it later I guess. Ping me if anyone has ideas.
Hello. Could you help me please? I want Sorting Group to affect Canvas that is inside that group. I mean, I have a prefab that I want to render as a single solid object, and inside that prefab I have a few sprites and a canvas with some text. Inside that prefab I set render order so that canvas is renders between sprites. But now if I instantiate this prefab few times, canvas elements still renders as if they are in global sorting order.
renderdoc is really hit or miss, if you use a feature that it doesn't like it will just die horribly and not capture anything
I feel incredibly stupid
I'm currently writing a custom render pipeline and I'm able to use the RenderingLayerMask feature on cameras, lights and renderers to cull objects and such
Problem being that for some reason I can't change the property on Lights. No matter what I choose, the mask is always set to Layer1. Renderers don't exhibit such a thing.
What am I missing? This feels more like a bug
And I don't set it from my scripts, I'm not that oblivious
I have no idea for your problem sorry :/
anyone have a working example using HDRP and DrawMeshInstancedIndirect? π€
What they show
What i have
Any idea why someone?
(Im using urp package)
Also, does anyone know how to animate a shadow caster shape?
Can someone help me understand why something like this (~300 cubes scaled and marked as static, with baked directional light) causes this insane amount of drawcalls?
Is that... is that a negative number in saved by batching?
Does anyone know how to get a 2D Tilemap to cast shadows ? I cant find a solution online
i found this but it doenst seem optimal either
https://www.reddit.com/r/Unity3D/comments/ewpoek/script_for_generating_shadowcaster2ds_for_tilemaps/
Good afternoon,
I am having an issue with trying to use Convert and Inject GO with a SubScene. I need to do so because I can't use the Hybrid Renderer with HDRP + Entities and Unity.Physics requires entities. The editor renders the ground properly but the camera does not:
@elder merlin @outer valley Negative batch numbers is probably because of the SRP Batcher. If you have it enabled, the batch numbers in the Stats window are wrong.
There's supposed to be some other stats view specifically for SRP Batcher, but I wasn't able to find it.
I'm still curious as to what is killing my performance tho.
It looks alot like the mesh gets combined, but they still have unique material instances?
you could try to look at it in the frame debugger to see what gets drawn together and what doesn't
Does anyone know why I can't animate the shadow caster?? I'm modifying it and it doesn't change when i play
I played around with some rendering tests for space scenes today
I ran into something weird...
The game is much "brighter" in builds than it is in editor
left is editor, right is build
look at the ship, lighting conditions are identical, ship is just rotated slightly differnt
it's MUCH brigther, as you can see... wth is this?
No one knows?????
Continuing the issue from lastnight... I cleared the shader cache and still a black screen on build.
Even on a blank scene.
Next step is to look for differences between the working config and the current one.
Finally found the issue. The pipeline had depth texture set which borked the whole thing.
anyone know how i can prevent the directional light in my scene showing up as the sun in specular surfaces in URP?
in the lighting panel, the Sun Source slot is left empty
not sure why its still showing
Maybe make a light with zero intensity and set it for the Sun?
Does anyone know why I can't animate the shadow caster?? I'm modifying it and it doesn't change when i play
No one for this ?
Is there a forum for the urp package?
@remote forge I'm suspecting that Hybrid Rendering v2 does not scale properly on high core count cpu. It's not just hybrid v2, the same issue applies to DOTS physics too. I started assembling a visualizing tool to make it easier to get perf data on screen by used job system worker count as it'll be handy when using DOTS in general + to actually identify things that don't scale properly to the jobs
on my test scene with 250 unique meshes spread to ~18k static instances on scene, hybrid v2 performs the best when using ~4 workers. When using the stock 23 workers on my 24 hw thread machine, hybrid's rendering cost is many times bigger when measured in milliseconds. Just to make this more clear, I'm not talking about diminishing returns with bigger job system worker counts, I'm literally talking about getting worse performance in game overall the more workers I allow (and it's horrible on the default setting)
basically more than few workers just get wasted as the overhead is bigger than the benefits they give
this is a bigger problem on my current DOTS testing, as DOTS physics is even worse on this part, it works best with 0-1 workers on job system :/ if I have to limit all Unity to run only on 0-4 workers, it's really far from "performance by default"
I'll make a proper forum post with repro project link when I get this setup done. I got bit sidetracked on this test project when the DX11 deltatime fix came and started testing it instead
for example I need to add options to isolate physics and rendering separately so can draw better conclusions than just using the profiling samplers data on what different parts took when used together
Thanks vertx !
@turbid matrix main-thread-only dispatch was a bad technical call, change my mind
my gut feeling is that you're spending more time on the main thread to generate work for ~24 threads and stalling out everything else
remember that work cannot be generated in parallel so you're probably just hitting the point of death spiral
shared resource contention is the enemy of scalability
yeah, it's possible, I haven't really checked behind the reasons why this happens as it's not my job (it takes me a ton of time to even report and make repro cases for these)
upgraded from hdrp 7.1 to 7.3 and my scene turned to some weird inverted colors
any clues?
created new HDRP asset , reset default resources to no resolve
I do wonder if one could just enable different amount of workers depending on what systems are currently running in the playerloop or if there's more overhead of adjusting the worker amount than what it's worth
(probably latter)
unlit scene view looks fine.
@frosty spear are you using hybrid renderer for dots?
also that looks like you are using isometric rendering
there could be all kinds of odd issues on that mode with HDRP as I doubt they test it extensively (there's quite little use for it on HDRP)
anyway, I'd start by testing if it does that when you more to perspective rendering
and also try disabling all PP effects and enabling them on by way systematically
no not Hybrid
not isometric
its regular, just camera angle different
it was working all fine on 7.1
its perspective rendering
no PP effects. i disabled all
still same
created new asset
new pp profile
new diffusion profile
all to no resolve
even in a blank scene , with just cube it still same
broken
you disabled all PP settings from project settings->HDRP default settings?
no from camera volume
well, if the new default scene, you can something broken there
have you run HDRP wizard through after you upgraded HDRP?
and you are running a recent 2019.3 version?
anyway, running out of ideas
it's definitely not broken here
it's used so you can change some hardcoded defines without bringing the whole HDRP package as your local modified package
you practically only need it as local package if you a) use HDRP with DXR support b) need PCSS or lower tier shadow filtering with HDRP deferred (as it's currently hardcoded to medium setting on deferred)
also....
make sure all your SRP packages are using matching version
you really shouldn't have anything but HDRP package itself installed
and let Package Manager install rest automatically through dependencies
Hey everyone, when setting up a standard lit HDRP material, what should you do if you have roughness, metallic, and AO, and no detail map? So far I've tried setting up the RGBA as:
R - Metallic
G - AO
B - All black (no detail map)
A - Inverted Roughness
But when I apply it to my model it looks like it loses all of its diffuse coloring. Is there something I'm doing wrong here?
@frosty spear looks like you reflections have a problem, have you rebaked your reflection probes, volumes etc?
it could also be ambient light, looks like you need to setup thing and rebake
@hallow belfry thanks. But it was an issue of default volume profile being all over place. My camera's volume mask got reset and default profile got applied which has all kinds of unwanted effects. It's was primarily the skybox setting on default profile making things go nut. Created a custom volume to fix it.
i see glad you could solve it
I made a project using URP but I imported a terrain asset that uses the built-in renderer terrain shader, and it didn't upgrade
is there a way to fix it?
I tried upgrading it a couple of times using this https://cdn.discordapp.com/attachments/497872424281440267/703926365182885968/unknown.png
but it still has the standard terrain shader
@midnight glacier have you tried creating a new material and giving it the URP terrain shader, then attaching that to the terrain?
I'll give it a shot
Nope
it doesn't even allow me to attach it
and the shader tab is locked aswell
@midnight glacier click on the cog, the material is assigned there
np π
@midnight glacier many materials are not correctly updated, but all materials let you change the shader from the drop-down. You can then browse to universal renderpipeline section and choose what shader is the nearest resemble of the one you have on pink.
Material>shader drop-down > universal renderpipeline > whatever type of shader
In case of the unity terrain I believer you need to make your own material and use lit terrain or something like that.
Got it
hey, how do I learn the basics of the render pipeline? is there any kind of book or documentation, maybe tutorials? i'm really newbie to this topic, so I'm considering on buying Real Time Rendering book by Tomas Moller, still I'm interested in the ways I can get better understanding the Unity render pipeline
Hi quick question:
I saw some studio which used Unreal Engine 4 get fast performance on PC with integrated graphics using UE4's mobile renderer on PC.
I was looking into if one could do something similar to this in Unity, so I saw that the Universal Render Pipeline is what you would use for performant games.
My question is, does URP has a separate PC, Console and Mobile Renderer? If so, how can I use the mobile renderer on PC for faster performance? Or is the same renderer that is used on PC is used on mobile as well?
@shadow dove URP is just one thing that has many settings that can affect performance
So for mobile, you probably wouldn't use post processing as much as on PC
The way I saw it on Unity's video about is that HDRP is for high end graphics and URP is for high performance.
And I am wondering how good performance one can get with URP.
It depends on your scene complexity and what features of URP you use at what quality
you still need to apply techniques which you currently use when targeting mobile platforms to get best speed. URP is not a magic bullet
I heard it as URP used to be called the light weight rendering platform, so if I turn off the majority of these settings and sacrifice good graphics, more low end PC's can play it?
Yeah mb, should have specified that
I am asking this question assuming one would properly optimize models, textures, code, etc.
I am just curious exactly how good performance one can get with URP with the majority of the settings turned off with proper optimizations made.
And if it can reach low end PC's as well.
In what scene? An empty scene? Yeah, I'm sure you could get very good performance with nothing on screen, regardless of what pipeline you use
:/ Yeah.. thanks for telling me that
The point I'm trying to make is it depends on the scene
Got it
I've been testing on a cellery (Celeron) PC with no dedicated gfx card, I'm re-tweaking each time I do a build. it's doing 20fps with shadows, hoping better if I switch them off and models are not optimized
If you make all your assets targetted for lower end, I'm sure it can perform.
Thanks! That's good to hear.
But depends HOW low do you want to go... I mean that's a really bad PC I'm testing on π
Yeah lol
My goal is to make games that can be played both on low end PCs and high end PCs
Probably not that low end, but like to reach integrated graphics.
I don't really believe in having the most photo realistic graphics, I think unique art styles can make a difference.
Anyway, thanks for the information.
Then I would go for URP, it can be performant and look stunning
Good to know π
my only words of caution is if you are using store assets that use shaders, make sure they support URP and check to what level. As it's constantly evolving at the moment not all assets are up-to-date or even at the same level.
Hence a lot are choosing to stay on standard renderer with a view to migrate when URP is more stable.
When I import a package (synty studios package) into URP, all the textures are magenta. I can do the edit >render pipeline >urp >upgrade project materials and it fixes some of them, the ones that don't get fixed have a proprietary shader that can't get upgraded
I can manually change the shader on the materials to make them appear right, but once I do that, if i save, it resets all the properties on the newly upgraded material (base color, smoothness, etc)
Why does saving reset these values?
Once we get Deferred Rendering , SSAO and some manner of Volumetric ( some assets on store are already doing this iirc) , goodbye Built In , goodbye HDRP.
How can i make sure an asset pack is compatible with a render pipeline?
trying to see if this is compatible with URP
how do i find that out π€
right, but idk if that guy is right or not
i saw that
but i'm kind of butt hurt
and would like to make sure
the package was last updated on 2015
cause it's such a nice pack
way before SRP were a thing
oof
you can be sure , you would face issues
is it possible to use VFX graph in the standard pipeline?
just check last update date and frequency of updates in general for all assets to evaluate overall support
is it possible to use VFX graph in the standard pipeline?
@keen tide sadly no
oof
VFX Graph is single best thing about SRPs
good thing its on URP now. was more painful when it was HDRP only
I'm too much of a noob for HDRP
for most projects on unity , where multi platform support and scalability is critical URP is the goto solution. HDRP is exlcusively AAA solution
how can i filter asset packs to URP compatible then?
and is the unity asset store the best place to look for assets, or am i doing something wrong
generally good but if you googling your keword with git at end also brings up lots of great repos
cheers for the advice π
but no way to filter URP compatible?
just need to second guess based on the release date
dont think you can filter. but most if not all authors explicity mention if support for SRP is there
cool
dont count on SRP support from any asset if they dont mention it. if it works , good.
found a sec-c URP asset pack π
can't wait to implement some of these bad bois
@frosty spear
Can vouch for that pack π
Hi guys
I have some questions about the scriptablepipline
from what I understand
unity's default renderer is rasterization based renderer .
there's sdk and integration for path tracing using Nvidia SDK .
is it possible to use hybrid renderer using third party renderer ( like octane)
In other words , Can I use Octane for real time games ( with no path tracing)
Unity default renderer has something off with shadows and lighting.
it is possible to archive unbiased lighting however not sure about the accuracy of shadows and materials .
I know the new hdr pipeline is build for highest quality, but
1-the lit shader is good approach but we need the source code + I hope it's as good as blender's ultimate principled shader?
2-there is too many materials types I know this could artists but for me moving from 2018 to the new version of unity 2019+
there's so many things change not only ui , but many aspects changed as well I hope there's only one type of material + one shader to rule them all
you have to go with Built In Renderer or the new SRPs ( URP/HDRP )
URP is fairly simplified. with minimal graphical settings imo
HDRP has tons of settings , sort of convoluted at times
but that comes with burden of all it tries to do i guess
you get the full source to the shaders as well as pipelines for both SRPs
so why unity choose to not open source the default renderer?
And make simple workflows ( only one material type ) + ( only few bsdf shader)
like blender
the entire point of SRPs is flexibility and customization. hence no 1 shader rules all approach. cant comment on source code licensing
Unity is not an Open Source software btw. so comparing source licensing with blender is of little value
also Unity is a Realtime Engine and not just a "Realtime Renderer"
I know shadergraph help the artist to make thier own shader ,
for us we want only one material type
you can stick to whatever defaults comes bundled with each SRP. or cook your own Uber Shader with all features you want and then say goodbye to everything else.
I'm not complaining about the source code of unity it's semi open for public ( to see the core code only not modification distribution ) btw
if you want to build on top of shipped capabilities of shaders that come bundled with Unity you can use shadergraph. they have master nodes which basically give you the default features as baseline and you can extend it
I just wanted better graphic ( /unbasied ,or hybrid workflow) and easier approach ( coming from 2018 to 2019 feels just like learning new engine !
because it kind of is new engine
SRPs are big change
if you havent played around with SRPs yet i would just say try out URP
its fairly functional and stable in current form , albeit lacking some core features like Deferred Rendering and In Built SSAO
if you want to make more informed decision , you can checkout both SRPs comaprision 1 to 1 with Built In Pipeline
URP : https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.3/manual/universalrp-builtin-feature-comparison.html
HDRP : https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.3/manual/Feature-Comparison.html
will the new dot system make us doing new c# script ? because I'm new .
from what I understand I shouldn't worry there's easy to use tool to make scripts components hyper threading ready ( conver them to entities) with few clicks
you can continue working with old scripting as you know. DOTS is not mandatory to continue programming in "new" Unity.
DOTS is not a replacement to existing programming environment in Unity. Its an addition.
About the future ?
what do you mean? will this continue to be the case with programming? i would say pretty much
Unity on many occassions on forums and blogs have reinforced this
what I love about c# is other.net tool to use for native development , like xamarin.
I don't want learning new languages
there are games worth BNs of dollar running live as of now. and many more being built with same good old unity tech. they cant replace or change the fundamentals of engine in a go like this. its a gradual , very slow and long process. you will get your fair time to ease into it , as things phase out.
C# / .Net isnt going anywhere. thats the heart of Unity as of today.
thanks for answering my questions π
Is there any way to get volumetric sun light in URP?
I accidentally clicked on a random one, how do i make sure I haven't installed the wrong one
How much extendable is SRP? Creating a Custom RP is it like creating your own 3D Renderer, and you can apply every possible existing real-time rendering technique found in books and other places, like a custom GI?
Also, how much of an overhead is there, being C# based? Wouldn't make it slower than the same techniques implemented in C++? Or because of IL2CPP that's not a problem?
@drifting moon There's a limit to how much control you have. When you actually want to draw a bunch of renderers, you're never managing the renderers yourself. You just define some filtering settings, culling settings, etc and then call DrawRenderers.
But technically, you could do that manually by drawing each mesh manually.
But DrawRenderers goes into the native rendering pipeline, which I assume will do things faster than you could do in C#.
But even with this, you can still do just about everything. Implementing forward or deferred rendering is straight forward.
Thanks @broken lichen I'm new to graphics programming, but I want to learn more about it.
I'm working on a tennis game and I'm thinking that maybe a custom RP will allow me to do things like realtime lightning and GI for dynamic time of day with good performance.
Since I'm only interested in the quality of the court and a few meters around it, I thought that a custom RP might be the way to go.
If you're new to graphics programming, then building your own render pipeline is not the best way to start.
There's a lot of boilerplate stuff you need to do to get even the most basic rendering working.
Well, that was a plan for the latest stages of development and I was planning to read some books before that, like the Real-Time Rendering book
I don't think you'll be able to optimize much better than an experienced team at Unity
No, but URP doesn't support advanced stuff from what I saw. I was thinking to do a combination of URP and HDRP: disable stuff for low-end devices and mobile, but still have high-quality rendering for PC.
They do rendering very differently, so you'll find it difficult to use them both in one project.
And because they work so differently, it's not trivial to merge them in some way.
Yes, that is why I thought that maybe a custom RP could be a middle ground between the features of URP and HDRP.
Isn't that possible?
Sure, if you have a team as big as Unity has and the years they spent on those render pipelines.
Here's a tutorial series on creating a custom SRP from scratch. It doesn't even get into lighting until part 3.
https://catlikecoding.com/unity/tutorials/custom-srp/
That's true! My thinking was more of a limited RP tailor made for my game, inspired from the source code of both render pipelines.
But it sounds like you just want HDRP that runs better on low end hardware
Yeah...
If you wanted a very custom look, like toon shading, then yeah maybe a custom RP would be a good idea
But the reason URP runs better is because it doesn't look like HDRP
Yes, I would like a more stylized look, and that is one reason of thinking of a custom RP.
So you don't plan on using PBR materials or realistic lighting?
Of course something tailor made for your game is going to end up performing better. But if you're going to make that argument, why not make a whole game engine tailor made for your game?
Because it would take too long
No! I'm all for faking stuff. But I want to have a dynamic time-of-day and I would like real-time shadows, maybe some limited GI too.
Real-time shadows for the limited court area... the background can have low-res shadows or not at all
It'll take a lot less time modifying URP or HDRP to add the features you need than to make a custom render pipeline from scratch
Well I didn't meant exactly by scratch. Modifying the source and making it custom like that is what I was thinking. Starting from scratch and adding from URP or HDRP exactly what I need, with possible modifications.
Or you meant modifying URP and HDRP using the extensibility they provide?
I'm not familiar how extensible URP and HDRP is (without modifying source), I'll have to do more research on that.
You can get lots done just in URP itself
and URP is the middle ground between URP (previously LWRP ) and HDRP actually if that makes any sense
you can do lots of custom effects with minimal amount of code in URP by means of Custom Render Passes
Thanks @frosty spear I will look into URP more deeply.
But I'm wondering, the default URP/HDRP will allow to have high-quality shadows inside a certain area with everything outside being low-quality?
yes. URP has great fidelity and scalability too
it might be convincing enough by virtue of its name (scriptable) to go off around trying to write a custom SRP but they offer 2 very solid SRPs out of the box pretty much because its gigantic undertaking. as MentallyStable said , you would need lots of knowledge and experience to get anywhere close to what you get out of the box and still struggle often to match performance and usability they offer
That's true! And I'll look into it.
But again, URP needs to satisfy many users with different types of games, and that is hard.
But, if we get URP and remove anything that we don't need and add the things we do need, wouldn't that be better for performance and usability?
Sure it's hard and it requires knowledge, but we'll never get to learn and be experienced without trying things like this.
From what i all i know of renderers , render pipelines and shading in general , URP is already built in modular fashion. i would wonder what you might or can remove from the vanilla state to speed it up. am sure there must be rooms of optimization there , just as everywhere else. But URP is fair and simple deal for me. Prime gain of URP and even HDRP for me is to have access to some great tooling like Shader Graph and VFX Graph out of the box. the SRP Batcher is sweet too
DXR aside though , i would go as far as to say that you can achieve Fidelity of HDRP today in Built In Itself.
and also in fact get better performance using some top quality extensions already out there
they have left out Built In Pipeline for dead in the DOTS Hybrid Renderer though which makes it hard not to use SRP if doing pure ECS Game
Graphics programming and writing shaders is something I would like to learn to not look at it as pure magic all my life π This seemed like a good opportunity to me to learn since my game is kinda static in terms of the camera and where the action happen. Since I also am looking for a more stylized look, things could happen and I might get a nice/unique style by "accident".
In fact, I'm porting my game from Unreal mainly because Unity does allow this kind of customization, allowing me to write custom tools with ease, and removing what I do not need.
For example, one reason I chose Unreal was because of the built-in networking, but now I'm building the network replication for my game using Unity's new Transport layer. That not only made me learn new stuff and no longer having to look at networking replication as magic, but I can do custom things for my game that will really benefit from.
I'm not gonna match Unreal's networking like I'm not gonna match URP/HDRP using a custom RP, but I don't need to.
fair enough. cant learn till you don't try. if learning is one of your key drives , most certainly go bonkers from scratch. i just believe playing around with existing solution will just give you more insight which is obvious statement.
Yes, I will definitely play with the existing solutions first to make sure I understand what I can do with them. Maybe I don't need a custom RP after that. Or maybe I'll get a rendering book and get scared from all that math and decide that magic and URP is alright π
i have ongoing project , which is started 2 yrs back. its all built in pipeline. i got the visuals i desire. then SRPs popped up in ready to go sort of state. so now every 3 month i just port my setup to URP and HDRP , play around with all bells and whistles and go back to Built-In for regular work on my main branc
For now, I just wanted to know what someone experienced can do with SRP, not necessarily me.
Thank you @frosty spear for your thoughts and advice.
is AO available in the URP yet?
nope
but does it support WebGL?
yep
Ok found it. The problem came from the depth of field component in post processing. On manual, the sky is black. If I setup on physical, then it solve the problem. Probably a bug from HDRP.
is AO available in the URP yet?
@stark marsh There is a wonderful fast and not expensive Horizontal Ambient Occlusion in the assets store. i used it to ship game map.
worth every penny, i use it with URP: https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/horizon-based-ambient-occlusion-54780
@hallow belfry Did you use it in VR?
not yet maybe you ask in the forum, pls keep me posted what they say π @elder merlin https://forum.unity.com/threads/horizon-based-ambient-occlusion-hbao-image-effect.387374/
or just... try the upcoming feat from github
does require some experimenting though
https://github.com/Unity-Technologies/Graphics/pull/24
https://github.com/Unity-Technologies/Graphics/pull/8
Purpose of this PR
This is the first part of an SSAO implementation for URP. It was decided to split this feature into two Pull Requests as the second part includes a big bonus feature, Render Feat...
i'm struggling to figure out realtime 2D Global illumination like some others have done: https://www.youtube.com/watch?v=8Rzevgwqp8A https://www.youtube.com/watch?v=vjTgXWT7Ux0
I've managed to get somewhere but it's still pretty bad: https://streamable.com/eijm3c This is in URP, I've got 3 separate cameras that output to RenderTextures, one 'base' camera that sees everything without lighting, one that sees just the geometry that blocks light, and one that just sees the light sources. Then a shader takes these RT's, figures out the lighting with random direction raycasts to get the final image, which then goes onto a quad, which another camera looks at and outputs to screen π¬
The whole set up feels wrong but i'm not sure. Not really expecting anyone to guide me to a full solution but I guess i'm just looking for some pointers /tips, or what to look into to fill gaps in my knowledge.. thanks
oh, i posted to this channel Render-Pipelines because i suspect this might benefit from a custom rp, or at least some modification of urp? it might have been better suited for shaders channel
What is the best way of rendering say... 10k-20k quads that changes every frame?
procedural geometry or as in material property changes?
@sharp hatch I would think of vertex off set using a changing displacement map.
GPU Instancing?
@hollow elbow but then i would have to build the map every time ye?
the data isn't in a neat linear buffer
@sharp hatch Can you generate those points and directions to a height map
well i mean sure, but that has to be done once per frame then
this data is constantly changing
to give some context, it's basically bullet traces/quads from a shit ton of machine gun fire
you want to shot something so it deforms, right?
no
i want to render a ton of quads at different points
i have A LOT of bullets flying around
and i want to draw them basically
talking about probably 10k-20k
the bullets are in the format of [location, direction]
are you drawing bullet traces?
and im just trying to come up with a clever way of drawing them all efficiently in
@frosty spear well "bullets', whatever you wanna call them, think about the laser that is shot in star wars
that thing
and i have a lot of them
I am thinking about particle system, I remember there is API in controlling particle positions, but you are talking about 10k-20k, so no sure if it can handle it.
i cant think of much other than regular GPU Instancing. IndirectInstance rendering with ComputerBuffer probably for maximum efficiency . submit your geometry data , points , scale etc all in a go and draw
its a classic use case.
yeah that might make sense
okey yeah its probably the best bet
makes it easy to have a few variations also
which will be needed
pretty much
okey thanks
Tried VFX graph ?
@scarlet hull Wont let me set the data tho?
maybe it does?
i mean i have a bunch of points + velocity/directions coming from a simulation
and need to display the bullets in those locations
Depending on how you store this data, but putting it simply, you could store it as textures (1 pixel = 1 point data) and sample them
That's how vfx graph reads pcache files
It would be even easier if you could directly export pcache π
i don't have the option to start my project in URP?
or is that "Universal project template" ?
oh
lol
yeah it is
using 2020.2 HDRP DXR , HDRP 8.1, it seems whenever I enable raytraced shadow, I got "Assertion failed on expression: 'ValidTRS()'
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)" Anyone know this error?
Ray Traced shadow under main directional light, just that little tick cause this error
Or is it bugged, I have to settle with out RT shadow
@hollow elbow it's thrown those errors throughout 2020.1 alphas and betas too
@turbid matrix I fixed it. It was due to the HDRP config package not properly installed. I have to download it through manager, close unity, and copy it to the localpackage folder, delete the old one, rename the new one. restart unity and refix it through the wizard. No more errors, everything works fine. And I am on 9.00 HD RP now
@turbid matrix pay attention to your lower right corner, there might be shader compiling when you update. always wait it finishes. Takes a bit time.
I keep wiping the config package all the time, I don't really think it is that. If I remember right:if you wipe all extra, like library etc, the warnings go away for the first run but the same stuff reappears next time you start your project
I'm so used to those warnings/errors that I don't really pay much attention to it anymore :p
anyone have good documentation for writing an SRP Render Feature?
Im quite beginning with render-pipelines but is urp the same as lwrp ? because in internet im somehow lost
@vagrant jasper LWRP got renamed to URP.
Can someone explain this a bit?
For decorations there will be tons of, like rocks. Isn't it better to having it static?
At the same time I've seen people get these crazy high framerates with hundreds of meshes rendered using instancing on the shader.
@obtuse cave That warning is just there in case you had planned on using instancing and didn't realize that you had set the renderer as static.
It's not saying whether you should use instancing or static batching
Yes, but that's kind of what I want advice on.
Static batching will merge meshes together, so they won't be candidates to GPU instancing anymore.
Gotcha! Makes sense!
I'm guessing this isn't possible, but is there a way to switch render pipelines at runtime? If possible, I'd like to use the legacy pipeline in a certain scene and revert it back to the previous rp when that scene is unloaded. I wrote this script which seems to change the rp correctly.
[ExecuteAlways]
public class OverrideRenderPipeline : MonoBehaviour
{
[SerializeField] private RenderPipelineAsset asset;
private RenderPipelineAsset previousAsset;
private void OnEnable()
{
previousAsset = GraphicsSettings.renderPipelineAsset;
GraphicsSettings.renderPipelineAsset = asset;
}
private void OnDisable()
{
GraphicsSettings.renderPipelineAsset = previousAsset;
}
}
however, when in a scene whose objects use URP shaders, if the script sets the render pipeline to null (legacy) everything continues to render normally ie: no pink shaders.
and the cameras say to assign URP
I'm printing GraphicsSettings.currentRenderPipeline.name to the console in OverrideRenderPipeline.OnDisable and getting "UniversalRenderPipeline_Configuration" so setting the renderPipelineAsset property doesn't seem to be doing anything
even though the property in the project settings window is changing accordingly