GithubHelp home page GithubHelp logo

paullj / unity-ecs-instanced-sprite-renderer Goto Github PK

View Code? Open in Web Editor NEW
137.0 137.0 22.0 59 KB

An example of a simple performant sprite renderer using Unity's new ECS system

License: MIT License

C# 88.02% ShaderLab 11.98%

unity-ecs-instanced-sprite-renderer's People

Contributors

kschieck avatar paullj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unity-ecs-instanced-sprite-renderer's Issues

Missing Frustum Culling

Hello, I am currently working on a 2D sprite-based game and recently went through the process of updating my implementation of a sprite renderer with frustum culling.

If you are interested in adding frustum culling to your sample, you can use my code as an example. It is based on the Unity.Rendering.MeshInstanceRenderer available in Unity Entities v0.0.12, but modified where necessary for sprite rendering.

The code is available as a public gist (as the source repository is currently private):

There are optimizations I plan on making to it (such as passing tilemap rect values as material properties and not separate batches), but hopefully it can serve as a reference you.

Avoidable GC allocation in SpriteInstanceRendererSystem update

There is ~3.1kb GC allocated per frame

These are from the lookups on meshCache and materialCache, which use SpriteInstanceRenderer as a key

The default ObjectEqualityComparer used in the Dictionary class will generate garbage when calling Equals() and GetHashCode()

This can be observed using the Deep Profiling option in the Unity profiler

This can be fixed by making SpriteInstanceRenderer implement the interface IEquatable in a way that does not generate garbage

It could alternatively be fixed by creating an IEqualityComparer class, and supplying it on construction to these Dictionary instances.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.