Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. Dismiss Notice

Discussion Virtual geometry in unity

Discussion in 'General Graphics' started by laurentlavigne, Feb 27, 2024.

  1. Slashbot64

    Slashbot64

    Joined:
    Jun 15, 2020
    Posts:
    355
    Not that I needed reminding by how much I hate everything about the trainwreck that is HDRP/URP and the complete mess inherent to it all. Just a very lengthy drawn out process wondering if it will ever actually get better and what will they change next to break it.
     
  2. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,694
    I highly doubt it. Unity would have to completely change their approaches with the reset, and if it doesn't happen then it's unlikely to ever happen.
     
  3. funkyCoty

    funkyCoty

    Joined:
    May 22, 2018
    Posts:
    742
    They need to scrap BiRP and HDRP and focus 1000% of their attention on providing ALL of the other RP's functionalities inside of URP. Having three is INSANE. What does the U in URP stand for, again?
     
    Marc-Saubion, Neonage, Trigve and 2 others like this.
  4. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    502
    People should really stop complaining about multiple srp's. It's getting ridiculous at this point.
     
  5. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,988
    I think the damage is done already, because they bolted URP (and actually all "new Unity" features) onto the old codebase, and as a result it is now organised in a weird way. (Unity is full of "oh yeah that doesn't work when you're using URP, or don't really look at the stats window, and the settings use scriptable objects, except we shoved some in the S***ty quality settings that should have been dropped years ago etc).

    And I think that's the same reason why a lot of URP features that were originally BIRP features are like "It's the same thing, but it has 5 extra steps you need to do".
     
    Gasimo and Neonage like this.
  6. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,988
    I mean people would stop complaining if the SRPs were good and their integration was good, instead of the unclear mish mash we have now.

    If Unity could pull off multiple SRPs in an elegant way, no one would be complaining. But they can't.
     
    Marc-Saubion, arkano22 and Neonage like this.
  7. Neonage

    Neonage

    Joined:
    May 22, 2020
    Posts:
    288
    Where did JamesArndt's messages and UT badge go? Was he fired?
     
    Marc-Saubion and Peter77 like this.
  8. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,988
    His messages seem to be here. The badge, I don't know, but something similar happened to Tim Cooper a couple of weeks ago and he hadn't been fired, so who knows.
     
  9. Neonage

    Neonage

    Joined:
    May 22, 2020
    Posts:
    288
    I can see only the first message, others in replies show a permission error.
     
    Marc-Saubion likes this.
  10. Neonage

    Neonage

    Joined:
    May 22, 2020
    Posts:
    288
    They're now forcing a switch to Render Graph API, so every custom Renderer Feature needs to be completely rewritten, with no 1:1 parity or proper guides. Otherwise, you won't be able to use any new features like Resident Drawer, GPU Occlusion Culling and Spatial-Temporal PP.
    New projects are created with Render Graph enabled by default.
    Expect another sh*tstorm once Unity 6 releases.
     
  11. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,988
    Hmm, yeah, you're not wrong.
     
  12. Slashbot64

    Slashbot64

    Joined:
    Jun 15, 2020
    Posts:
    355
    Not funny because I literally wasted some time today after importing Snapshot Pro URP edition into a 2023.3 project only to find it needs to work on RThandle stuff now and yeah hardly any good guides on moving the previous stuff over to this new way, depreciated..but good luck figuring how it works now..haha... it's not really my thing but porting other people's assets, sometimes I'm usually ok with it, in this case I just removed the asset, Unity graphics just making endless pain for developers who do shader/terrain etc based assets.

    It came as news to me that UE actually has a mobile renderer...luckly for them there main render is like HDRP but does scale pretty decently on for PC, just like Unity had with BIRP. Here URP is treated as the mobile version that everyone was guided towards using being cough 'Universal' while HDRP probably statically used in less projects than both URP and BIRP, lives on when I'd rather see it ended as the experimental renderer that got all the attention but doesn't live upto much compared to other engines on the scene these days.
     
  13. Neonage

    Neonage

    Joined:
    May 22, 2020
    Posts:
    288
    Seems like the only "easy" way is to use UnsafePass, which will allow to call APIs in the old fashion, but probably not every old API is supported, and will result in worse performance (same as old render loop I guess? Render Graph doesn't provide that much gain anyway).
     
  14. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,694
    Unity's biggest mistake was creating the pipelines in a way that made their assets incompatible with each other which often means permanently locking yourself out of platforms you may need to support by choosing HDRP.
     
    Last edited: Mar 1, 2024
    Marc-Saubion, Piolols and Trigve like this.
  15. Neonage

    Neonage

    Joined:
    May 22, 2020
    Posts:
    288
    Remember when we used to call:
    Code (CSharp):
    1. Graphics.Blit(src, temp, material);
    2. Graphics.Blit(temp, src);
    Now we'll have to:
    Code (CSharp):
    1. class PassData
    2. {
    3.    public Material BlitMaterial;
    4.    public TextureHandle SourceTexture;
    5. }
    6.  
    7. public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData)
    8. {
    9.     UniversalResourceData resourceData = frameData.Get<UniversalResourceData>();
    10.     UniversalCameraData cameraData = frameData.Get<UniversalCameraData>();
    11.  
    12.     TextureHandle sourceTexture = resourceData.activeColorTexture;
    13.  
    14.     RenderTextureDescriptor descriptor = cameraData.cameraTargetDescriptor;
    15.     descriptor.depthBufferBits = 0;
    16.     TextureHandle destinationTexture = UniversalRenderer.CreateRenderGraphTexture(renderGraph, descriptor, "_TempRT", true);
    17.  
    18.     using (var builder = renderGraph.AddRasterRenderPass<PassData>("After Opaque Post-processing pass", out var passData))
    19.     {
    20.         passData.BlitMaterial = m_InvertColorMaterial;
    21.         passData.SourceTexture = builder.UseTexture(sourceTexture, IBaseRenderGraphBuilder.AccessFlags.Read);
    22.  
    23.         builder.UseTextureFragment(destinationTexture, 0, IBaseRenderGraphBuilder.AccessFlags.Write);
    24.         builder.SetRenderFunc((PassData data, RasterGraphContext rgContext) => ExecutePass(data, rgContext));
    25.     }
    26.  
    27.     using (var builder = renderGraph.AddRasterRenderPass<PassData>("Color Blit Resolve", out var passData))
    28.     {
    29.         passData.BlitMaterial = m_BlitMaterial;
    30.         passData.SourceTexture = builder.UseTexture(destinationTexture, IBaseRenderGraphBuilder.AccessFlags.Read);
    31.  
    32.         builder.UseTextureFragment(sourceTexture, 0, IBaseRenderGraphBuilder.AccessFlags.Write);
    33.         builder.SetRenderFunc((PassData data, RasterGraphContext rgContext) => ExecutePass(data, rgContext));
    34.     }
    35. }
    36.  
    37. static void ExecutePass(PassData data, RasterGraphContext rgContext)
    38. {
    39.     Blitter.BlitTexture(rgContext.cmd, data.SourceTexture, new Vector4(1, 1, 0, 0), data.BlitMaterial, 0);
    40. }
    That's from Perform a full screen blit in URP.
    Good luck.

    And there is no point complaining about it, as they'll just say "It's the future now. Get used to it.", like they always did, while shoveling it into your throat, and throwing buzz words like "Our priority is to make developers and users successful".

    No offense to people that work hardly on all these new incredible low-level GPU-related features, but god, this introduction of change is the most awful, and they never seem to learn from past mistakes.
    To management - burn in hell that you've created.
     
  16. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,694
    I keep hoping one of these days they provide source access that way I can choose to ignore certain APIs.
     
  17. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,452
    Yep, Unity's stuff has gone 100% insane lately. thanks to the SRP team not giving a S***.
    If you want APV function, instead, use Mr F's Bakery, its 3D texture lighting works super well, encodes even highlights, and because you end up doing your own shader anyway, it's very scalable. You can drop down to 1 sample or 2.
     
    AcidArrow likes this.
  18. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,643
    That is bad idea because doing that will leave everybody without a RP that works. Meaning you'll get an engine without a renderer which is going to be amazingly popular for sure. URP is in some aspect more limiting with BiRP.

    The correct idea is to keep BiRP and HDRP available unless "the next big thing" is fully feature complete, which will take a couple of years at least and then keep them available for 5 to 10 years more if not 10. Then make them opensource.

    The most common error is "First, we have to REMOVE". No, first you finish feature complete replacement of the thing you want to remove, otherwise once you're done removing you'll have nothing.
     
    EricWilliams and WilsonCWong like this.
  19. WilsonCWong

    WilsonCWong

    Joined:
    Mar 20, 2013
    Posts:
    35
    Nah, removing first without a proper replacement is totally fine! It worked great with UNet :p
     
  20. Arithmetica

    Arithmetica

    Joined:
    Feb 11, 2019
    Posts:
    44
    I have been continually disappointed by Unity's behavior in recent years.
    There are various problems, but the common cause of all of them is disregard for the users.
     
    Marc-Saubion and MostHated like this.
  21. impheris

    impheris

    Joined:
    Dec 30, 2009
    Posts:
    1,735
    Unpopular opinion here: i like the URP/HDRP thing, I think that helps the new dev that wants to create mobile games, but i think they need to completely forget about BiRP forever, that would be a good step for their current path.
    unpopular opinion.png
     
  22. juso3d

    juso3d

    Joined:
    Mar 2, 2024
    Posts:
    1
    Anyone else here tried the Tuanjie 1.0.3 in Linux?, crashes when using Vulkan with latest Nvidia proprietary drivers (Arch Linux).
     
  23. Dargon_huihui

    Dargon_huihui

    Joined:
    Mar 23, 2016
    Posts:
    10
    The reason for the emergence of tuanjie is entirely because of policy issues, which have to face. Of course, there are also reasons for developing minigame and so on.
     
  24. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 5, 2024
    Posts:
    553
    That only describes the existence of Unity China, it doesn't describe why only Unity China has features people are asking for ages. I highly doubt that Chinese political policy decisions would block Unity delivering anything useful.

    The "The Communists made me do it!" and the "Communists made me not do it!" are so 1950s...
     
    Marc-Saubion, AcidArrow and Ryiah like this.
  25. Neonage

    Neonage

    Joined:
    May 22, 2020
    Posts:
    288
    They forgot about it long ago. The last BIRP update was Shader Graph support, and it was not mandatory.
    To keep it in engine, they don't need to update it in any way, so there is really no good reason to remove it.

    BIRP is still great for many projects and quick prototypes, since there is tons of working community assets and learning materials that never break, opposing to SRPs.
    The power of BIRP was always in it's stability, extensibility and simplicity. Even if it's a black box - a simple humane API does the job of shipping stylized games.
     
    blueivy likes this.
  26. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,694
    Back when they removed UnityScript and Boo one of the primary reasons they gave was the time to verify that it was working properly with each release. If they're having to test BiRP with each release they might take it out for that reason.
     
  27. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,988
    Since they keep introducing bugs to it, not sure they are verifying it all that much.

    In any case, it would be a bold move to actually say "here is the replacement, the old one is done" and actually remove the old feature. But Unity doesn't act with hutzpah. Because to act like that, the replacement needs to be an actual replacement, and we should have upgrade paths to be able to easily convert our projects to the new stuff (if not automatic tools, at least a well documented guide that points out what the equivalent features are and how to convert etc).

    But Unity can't do that. Instead they just meekly and weaselly add features that aren't ready, while keeping the old ones around, because they too know their stuff isn't ready and they need the comfort of their old features being there so they can point to them when users complain. It's not even an SRP thing, it's a tactic that is much older than that.

    I've told this a bunch of times, but I'll say it again, because I think this has been instrumental to how I think about Unity.

    Many years ago they introduced the animator, told everyone "animation" component was dead, they introduced a bug in animation where you couldn't animate material properties which they wouldn't fix (because animation component was dead), they did NOT provide an automated animation clip converter (even though it would be easy) and THEN when people complained about the animator being performance intensive they said "well, use the animation component" and "the animation component should be an important part of you toolset".
     
    Last edited: Mar 4, 2024
  28. Slashbot64

    Slashbot64

    Joined:
    Jun 15, 2020
    Posts:
    355
    Ironically BIRP is the only thing that actually works between editor releases especially when your project contains third party assets using it. The graphics stuff with packages is a fail, you just can't use an older URP/HDRP package with a newer Editor just doesn't really work in practice from what I've experienced. And jbooth doesn't even update past the last LTS, so good luck using any URP/HDRP stuff in a new Unity editor with assets that need updating for those versions, the only thing that usually will work is an aging BIRP.

    As a side note I'd like Godot take GDscript out for all the same reason Unity did with boo.. junky script languages where you find someone has wasted time making decent projects written in them, when they should have just been written in a better language.
     
    Last edited: Mar 4, 2024
  29. Michael_Swan

    Michael_Swan

    Joined:
    Aug 24, 2021
    Posts:
    59
    Virtual geometry + dots would be very powerful - Does Unreal have something similar to dots ? If you could port virtual geometry with the new WebGPU changes, could it *theoretically* run on a web page?
     
  30. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    637
    virtual geometry can definitely run on a webpage/mobile but apparently that's too much work for unity.
    https://discourse.threejs.org/t/virtually-geometric/28420

     
  31. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    747
    How are they accurately hitting all the marks with everything I wish I get to hear at every Unite roadmap announcement for like 7 years? That's crazy, its like they were mind readers!

    We had surveys for years, and we're getting all kind of weird AI stuff.
    Maybe our side of Unity could use whatever they were using?
    Like damn that's everything I wish I'd hear word by word!
     
  32. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,452
    Small team are more nimble. Also, it's hard to picture the level of excellence in China.
    I was using a neural chip made in China and called them one day. The girl who picked up spoke English, knew the API, had recommendation on more effective NN architecture, while on the phone changed my C code, and, when she didn't know something, talked to the engineer sitting next to her and got the answers within seconds.
     
  33. IllTemperedTunas

    IllTemperedTunas

    Joined:
    Aug 31, 2012
    Posts:
    782
    It's not hard to imagine. This is how society should function, meritocracy.

    What's hard to imagine is how the west allowed so many lazy, entitled, greedy, moral grandstanding idiots to destroy everything in such a short period of time.

    China saw Capitalism and got a fire under their butts to work hard and become a powerhouse. The west had everything and got fat and lazy and up its own arse. It's infuriating to sit around and watch people sitting in their own bubbles scratch each other's backs as the future burns for their hubris.

    We're so spoiled that people get offended if you work hard and are good at anything, they'll shove you into the dirt and throw a petulant fit for exposing how much they have tainted everything of any value in this world.

    We're living in a twilight zone episode where the harder you work and the more you try to improve the world, the more social attacks you'll receive by grown children hording their toys and protecting that fragile bubble they're living in. Their little chunk of superiority is more valuable to them than the prosperity of the coming generations.
     
    Last edited: Mar 5, 2024
    chingwa, Marc-Saubion and OCASM like this.
  34. blackbird

    blackbird

    Joined:
    Aug 9, 2011
    Posts:
    597
    That's why Asian games runs much better than our games ? unity don't you feel ashamed about how bad you treating your customers and how bad your product is ?
     
  35. IllTemperedTunas

    IllTemperedTunas

    Joined:
    Aug 31, 2012
    Posts:
    782
    You're assuming there are people running western companies who give a darn about their product or that their egos allowed them to hired anyone who gives a darn about their products. Too busy smelling their own farts after dismantling all those mechanisms that create quality systems and code to feel any shame over the damage they have done.
     
  36. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    637
    out of curiosity what was the neural chip you used?
     
    blackbird likes this.
  37. giraffe1

    giraffe1

    Joined:
    Nov 1, 2014
    Posts:
    310
  38. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    747
    I hope this push them to compete against themselves, if they aren't even trying to compete with UE 5, nor even Godot.
     
    Last edited: Mar 6, 2024
  39. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    2,140
    Why would it? Unity China serves the Chinese market, Unity proper serves the global market everywhere else. They are not competitors.
     
    Lurking-Ninja likes this.
  40. funkyCoty

    funkyCoty

    Joined:
    May 22, 2018
    Posts:
    742
    I can download chinese unity right now. If it's better than global unity.. why not use chinese unity?
     
  41. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,988
    Does the runtime fee apply to Chinese Unity?
     
  42. PanthenEye

    PanthenEye

    Joined:
    Oct 14, 2013
    Posts:
    2,140
    Might be licensing issues, I believe the wording was something about having to contact them if residing outside China. And the Chinese version also sends data to the Chinese government, which is an issue for many.
    Per posts on previous page, apparently it does not have the runtime fee. It has a bit more expensive regular subscription. Like $10 more a month, which is trivial.
     
    Gekigengar and AcidArrow like this.
  43. impheris

    impheris

    Joined:
    Dec 30, 2009
    Posts:
    1,735
    man, i'm getting interested on that chinesse version... I "need" something more like lumen (for my next project), but virtual geometry could be useful
     
  44. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,452
    Kendryte K210
     
    blueivy likes this.
  45. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    2,018
    I do too. I mean, I think having separate render pipelines for different performance/quality characteristics and target hardware ranges -instead of a monolithic pipeline that tries to scale from toasters to nuclear supercomputers- is a good idea, because it *should* reduce clutter, *should* allow for easier maintenance, *should* result in better engine performance, *should* make both artists and developer's lives simpler, *should* make it easier for newcomers to focus and decide on what and what not to use.

    The problem imho is that Unity's execution of this idea has been absolutely abysmal, as it achieves the exact opposite things.
     
    blueivy and Sluggy like this.
  46. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    747
    Yeah but now they have to develop the same features twice.
    Volumetrics, AVP, SSGI, Smoke Lighting, Decal, etc.
     
  47. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    2,018
    There's never any need to implement the exact same thing in the exact same way more than once. Even if you need multiple different implementations of the same thing (because they perform differently, yield results of different quality, or require different data), you can abstract the interface from its implementation.

    For instance, SSGI needs normals, depth and color buffer as inputs. You can generate these using any rendering method, so it makes sense to have a single SSGI post-process effect that can work in *any* pipeline since it's a black-box with some inputs and some output: it doesn't care where the data came from or how it was generated.

    Decals can be implemented in a variety of ways, if you have a deferred pipeline then it makes sense to use deferred decals. If you have a forward or tiled forward pipeline then you'd opt for a different solution, but regardless of how you implement them, decals should expose the same workflow to the user.

    Imho, the problem is that URP and HDRP were likely designed and built in isolation, it's easy to tell because even the naming conventions they use are completely different for no apparent reason. If you have two separate teams designing their own pipeline each with little to no interaction / involvement in each other's work, how can you expect results to be anything other than a clusterfuck?
     
    Ryiah and Trigve like this.
  48. impheris

    impheris

    Joined:
    Dec 30, 2009
    Posts:
    1,735
    exactly... 100% agree with you!

    no, because is the same engine with limitations, also, idk why you want SSGI, volumetrics, smokke lighting on URP, that has no sense at all imo or maybe i did not understand your comment.

    imho, HDRP must be the Universal one and URP must be LWRP, that can make things easier for newer devs, idk wth they were thinking tbh -.-"
     
    Last edited: Mar 8, 2024
  49. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,988
    That requires HDRP to be able to scale down more and it seems they don’t have much interest in that happening.
     
    Trigve likes this.
  50. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    747
    And yet they implement AVP, Volumetrics, Smoke Lighting, on URP as well. SSR & SSGI seems to be coming too.
    I don't know what's your point when that's exactly what they're doing, implementing on both.
    https://portal.productboard.com/8uf...urp?utm_medium=social&utm_source=portal_share
    https://portal.productboard.com/8uf...ssr?utm_medium=social&utm_source=portal_share
    And it seems like they're also planning URP to support large open worlds.
    https://portal.productboard.com/8uf...ing?utm_medium=social&utm_source=portal_share
    Why are their coming close to feature parity when they're meant for different things?
    Why not just have one rendering pipeline and double the production speed?
    They could've both been an extra quality settings if anything, if in the end you're going to implement both cheaper & quality methods.

    Why complicate asset developers? Why complicate your own packages as well? Shader Graph & VFX graph been struggling trying to support the same features on both and make them reusable on both.

    I would argue it would've been a lot better to future proof if they were simple quality settings.
    Given how much progress computing power in mobile device is getting every year.
    Check out some of the mobile games made with UE, they still perform very fine in my 5 yo device.

    Now with Render Graph, and "URP/HDRP co-existence", URP could've just been HDRP with different initial setup without all the extra overhead maintaining and developing for both.
     
    Last edited: Mar 8, 2024