Search Unity

[Released] Orbis - DOTS Terrains

Discussion in 'Assets and Asset Store' started by davidus2010, Aug 1, 2021.

  1. Krooq

    Krooq

    Joined:
    Jan 30, 2013
    Posts:
    194
    Ah excellent! Thankyou!
     
  2. Norm49

    Norm49

    Joined:
    Jun 7, 2021
    Posts:
    12
    Dose any tutorial video exist to give some explanation on how this asset work?
     
  3. Krooq

    Krooq

    Joined:
    Jan 30, 2013
    Posts:
    194
    There is no video tutorial but the documentation is pretty good and the asset itself has great demo scenes.
    The code is split into several modular systems that do a different task. Its really easy to navigate.

    (There are some showcase videos on the asset store but I assume you know this)
     
    Last edited: Nov 24, 2021
  4. Krooq

    Krooq

    Joined:
    Jan 30, 2013
    Posts:
    194
    @davidus2010 I have a small suggestion/request.
    I'd like to have a single authoring game object to configure the 6 planet faces instead of 6 separate ones.
    Usually all 6 faces have exactly the same settings.
    I tried doing this myself by creating a "PlanetAuthoring" mono and doing some work in the conversion process but the [GenerateAuthoringComponent] tagged components don't give you access to the data during conversion which is a pain.
    This is really something Unity should fix but I found I could work around it by either creating a new authoring game object for each component OR just by marking the components [Serializable].
    I think the former is probably the better/more flexible solution as it allows the "PlanetAuthoring" mono a bit more flexibility, i.e. if you don't want biome settings you can just omit the component on the authoring object but it requires more effort than making them serializable and adding them as fields to the "PlanetAuthoring" mono.

    I think in general avoiding the [GenerateAuthoringComponent] attribute is the best approach for asset publishers so that users can have this flexibility during conversion but at least by having the [Serializable] tag on components, they can easily be wrapped in an authoring component by the user.
     
  5. Norm49

    Norm49

    Joined:
    Jun 7, 2021
    Posts:
    12
    When a create a planet or a terrain even if i use the demo one i all ways have a purple terrain. What am I missing?
     
  6. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi, thanks for the suggestions. Better/easier authoring components that are not based on [GenerateAuthoringComponent] are already planned, and will probably be included in the next release
     
    Krooq likes this.
  7. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi, could you please provider a few more details? The demo scenes were made in a URP environment, and should work in any SRP environment. If you are using the built-in renderer, you need to check your materials.

    Which Unity version & rendering pipeline are you using?
    Also, please check the setup instructions at "https://orbis-terrains.netlify.app/docs/getstarted/installation/"
     
  8. Dr_D_and_D

    Dr_D_and_D

    Joined:
    May 20, 2020
    Posts:
    25
    there are some very obvious seams on the planet. Is there any fix?
     

    Attached Files:

  9. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi, the seams you have on the picture there are a known issue with the scattered heightmap mode. The problem is that the scattered heightmaps can't be correctly wrapped around the cubesphere's edges without causing cracks. To prevent this, Orbis uses random noise around the edges to try to hide this.
    In the next version this will be easier to configure and will do a better job at hiding the seams. Currently, they only way to try to improve the seams is to play around with the float values manually in the Code. You can find the relevant lines in "ECS/MeshGenerationJob.cs" in line 476.
     
    keeponshading likes this.
  10. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi everyone, small development update:
    The next update is almost ready for release. I worked hard to allow Orbis to render a low-res in editor preview where the terrain generation parameters can be edited live while working in the editor (without having to enter playmode). This should make it much easier to get the terrains to look right, and also to line up environmental assets with the terrains. This also includes a custom authoring editor to make it easier to roll out changes to all sides of a spherical terrain.

    Below is a small video of the in-editor preview in action:
     
  11. the_unity_saga

    the_unity_saga

    Joined:
    Sep 17, 2016
    Posts:
    268
    keep it up!!!! hope i see you make more DOTS/ECS assets!

    even water asset and swimming or boats for these planets!!!!!!!!!!!!!!!1
     
  12. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292
    Hi, just bought this last night and loving it so far. a coupla niggles though, firstly i havnt been able to get any of the prefabs to show the planets sides when droppd into a scene? checked out the demo and the heightmap planet has a missing script attached to it so not sure what script it is. says i need to fix compile errors but none showing up in console :(
    Secondly i am using another asset from the asset store for my ship(sci-fi ship controller its called), i dont want to be able to land on the planet or anything like that, just to get in close, fly thru atmosphere to a POI thats spawned with a conventional collider to trigger an async scene change to another more detailed POI level. Problem im having is when i tried my ship in a copy of the demo scene(spawned near the planet and flew over it and through the atmosphere which was fun :)) and tried flying from the heightmap planet to the moon i disappeared when i reached the moons and flew halfway round it only to reappear at a point in space with no planets in sight.
    Im assuming floating point issues but i cant be sure because im not the best coder around :(
    Also is there a way to add water to the planets?
     
  13. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292
    Got this exeption whilst using the ship controller asset i mentioned earlier

    ObjectDisposedException: The Unity.Collections.NativeHashMap`2[Unity.Entities.Hash128,Unity.Entities.BlobAssetReferenceData] has been deallocated, it is not allowed to access it
    Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckReadAndThrowNoEarlyOut (Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle) (at <d3b66f0ad4e34a55b6ef91ab84878193>:0)
    Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckReadAndThrow (Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle) (at <d3b66f0ad4e34a55b6ef91ab84878193>:0)
    Unity.Collections.NativeHashMap`2[TKey,TValue].CheckRead () (at Library/PackageCache/com.unity.collections@0.15.0-preview.21/Unity.Collections/NativeHashMap.cs:546)
    Unity.Collections.NativeHashMap`2[TKey,TValue].GetValueArray (Unity.Collections.Allocator allocator) (at Library/PackageCache/com.unity.collections@0.15.0-preview.21/Unity.Collections/NativeHashMap.cs:369)
    Unity.Entities.BlobAssetStore.ResetCache (System.Boolean disposeAllBlobAssetReference) (at Library/PackageCache/com.unity.entities@0.17.0-preview.42/Unity.Entities.Hybrid/GameObjectConversion/BlobAssetStore.cs:38)
    Unity.Entities.BlobAssetStore.Dispose () (at Library/PackageCache/com.unity.entities@0.17.0-preview.42/Unity.Entities.Hybrid/GameObjectConversion/BlobAssetStore.cs:167)
    SciFiShipController.SSCManager.OnDestroy () (at Assets/SCSM/SciFiShipController/Scripts/SSCManager.cs:2155)
     
  14. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292
    sorry didnt read the manual properly got both a spherical planet and floating point problem sorted :)
     
  15. Tegleg

    Tegleg

    Joined:
    Jun 10, 2013
    Posts:
    79
    been playing around with this for a couple of days, great work!

    im having trouble finding a DOTS controller example that actually works, most of them are up to 2 years out of date and give numerous errors.
    the main issue is colliding with the planet surface.

    i wonder, would it be possible to convert the camera fly to ecs? so it collides with the surface so we have an example to look at

    thanks
     
  16. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292
    I tried spawning a few cities ( as foliage) on the planet and they spawned ok. I had one problem though, the gameobject representing the city has a sphere collider set as trigger to change the level when a game object with tag player enters it. unfortunately it doesnt see to be working... does orbis disable colliders in gameobjects it spawns?
     
  17. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292
    My bad, went through the manual again, saw the disclaimer. Is there any way to place gameobjects on the planet with standard monobehaviour driven colliders?
     
  18. Tegleg

    Tegleg

    Joined:
    Jun 10, 2013
    Posts:
    79
    hi. looks like we are having similar issues regarding the incompatibility of 'standard' physics and the DOTS system.
    it means either not using this fantastic terrain solution or rewriting everything to use ECS, which seems like a sketchy broken ever changing convoluted nightmare.
    if you find a solution please speak up
     
  19. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292
  20. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi,
    thanks for giving Orbis a try. The problem you are describing is theoretically solvable, but mixing both ECS and Mono Physics can potentially lead you to even more problems, as things like a character controller will probably only work with either DOTS Physics or Mono Physics.
    That being said, here's how you would approach that situation you were describing (spawning GameObject cities as Orbis foliage):
    The foliage is always created as an ECS entity. So you create an entity prefab to be used as foliage, to act as a GameObject creation trigger. Give it a new tag component and create a new System to iterate through all of the tag components (Using Entities.withoutburst().*.Run(). This will be a system that works on the main thread, so you can spawn any GameObject prefabs you want here. You could spawn a "City" GameObject for every Entity with the Tag.
    Basically, for each "foliage" entity that is placed on the terrain you create a corresponding "companion" GameObject.
    Please note that this will probably not directly be scalable to thousands of instances, unless you implement some kind of pooling for the GameObjects.
    If you need more guidance on how to implement this with some code samples, please let me know.
     
    Last edited: Feb 14, 2022
    Gordune and tgamorris76 like this.
  21. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi,
    what kind of "DOTS Controller" are you looking for? There is an ECS character controller on the asset store that should be compatible with Orbis, it is called "Rival - DOTS Character Controller". It should work with both flat and spherical Orbis terrain, but it is untested.
    What i have verified to be working are the Character and Vehicle Controller from the Unity Physics Samples, although out of the box they will not work with the spherical worlds, and you need to manually set the gravity direction for them.

    You could also convert the camera fly to ECS. To have it collide with the surface, there are multiple rays to approach this problem:
    - You could just use the existing script and do a raycast/overlap sphere (every frame, or when the camera is moved), and check if it is colliding with the terrain. If it is, cancel the current movement/move it away from the colliision point. For a reference on how to do that, check the unity docs on collision queries.
    - You could also convert the "Main Camera" GameObject to an entity, with the "Camera" component as a hybrid component. Then also add a physics shape and physics bode to it, so it basically acts as a rigidbody. If you disable the physics body's gravity and move it, the physics system will take care of terrain collisions.

    If you need any further guidance or code example, please let me know.
     
  22. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292
    Thanks for your response, I would really appreciate the extra guidance and code samples.
     
  23. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Great, here's a small sample of a system that will create a prefab GameObject for every foliage entity with a specific tag:
    Code (CSharp):
    1. // FoliageGOCompanionTag.cs:
    2. // this tag is required on the entity that is spawned from the procedural vegetation spawner
    3. [GenerateAuthoringComponent]
    4. public struct FoliageGOCompanionTag : IComponentData { }
    5.  
    6. // GameObjectCompanionSystemSample.cs (imports are skipped for readability):
    7. public class GameObjectCompanionSystemSample : SystemBase {
    8.  
    9.     // the prefab we are spawning
    10.     private GameObject prefab;
    11.  
    12.     // used so we know which gameobjects to destroy when the camera moves too far away and foliage is being removed
    13.     private Dictionary<Entity, GameObject> GORefs = new Dictionary<Entity, GameObject>();
    14.  
    15.     private EndSimulationEntityCommandBufferSystem commandBufferSystem;
    16.  
    17.     protected override void OnStartRunning() {
    18.         // possibly initialize prefab GO here, by using a singleton/static reference
    19.         prefab = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
    20.      
    21.         commandBufferSystem = World.GetOrCreateSystem<EndSimulationEntityCommandBufferSystem>();
    22.     }
    23.  
    24.     protected override void OnUpdate() {
    25.  
    26.         var commandBuffer = commandBufferSystem.CreateCommandBuffer();
    27.  
    28.         // create GameObjects for newly created foliage entities
    29.         Entities.WithoutBurst().WithAll<FoliageGOCompanionTag>().ForEach((Entity ent, in Translation translation, in Rotation rotation) => {
    30.             if (GORefs.ContainsKey(ent)) return;
    31.             var GO = GameObject.Instantiate(prefab, translation.Value, rotation.Value);
    32.             GORefs.Add(ent, GO);
    33.             commandBuffer.RemoveComponent<IsPoppingIn>(ent);
    34.         }).Run();
    35.      
    36.         // delete companion GameObjects when camera is too far away
    37.         Entities.WithoutBurst().ForEach((Entity ent, in Translation translation, in Rotation rotation, in IsPoppingIn poppingIn) => {
    38.             if (poppingIn.destroyOnComplete && GORefs.ContainsKey(ent)) {
    39.                 GameObject.Destroy(GORefs[ent]);
    40.                 GORefs.Remove(ent);
    41.             }
    42.         }).Run();
    43.     }
    44. }
    Please note that this script is only meant for demonstration purposes and might require some additional finetuning for production environments. I hope this helps.
     
    tgamorris76 likes this.
  24. tgamorris76

    tgamorris76

    Joined:
    Apr 24, 2013
    Posts:
    292

    Thanks, what do i attach the script to?
     
  25. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    The code I posted contains two scripts:
    The IComponentData one should be attached to the prefab entity that is spawned by the foliage spawner, and the SystemBase scripts doesn't attach to anything.
     
    tgamorris76 and Gordune like this.
  26. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi everyone, i just submitted a new version for review, which will hopefully go live in a few days. This contains multiple large changes, including the beforementioned custom inspector and the in-editor live preview.
    Also, Orbis has been updated to the new entities 0.50 release. For more information about this new release, visit the official announcement: https://forum.unity.com/threads/experimental-entities-0-50-is-available.1253394/
     
  27. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    How to control the selected Vegetation? for example,if player destroy a tree generated by the Vegetation system,how to make the tree dont appear when reload the map next time?
     
  28. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi, such a feature is currently not natively implemented in Orbis, but should be rather easy with some small modifications to Orbis. For example, what you could do is store the location or a hash of the location of a destroyed tree in a fitting NativeHashSet (marking it as blocked/deleted). Then supply this nativecontainer to the VegetationSpawningSystem of Orbis, and when spawning a tree there, check if the location of the spawning candidate is inside the NativeHashSet of deleted positions.
     
  29. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    Thanks.I will try to modify the spawning system。there is another question:
    when i open the EditorPreviewPlanets demo and play ,when the camera beyond the "earth" ,it looks green,but if u reach the earth ground,all the terrain turn to white.Is this a bug? the "sun" has same problem.when move close to the sun ,it also appear obviously color changes。
     
  30. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hm, that sounds very strange. What "sun" are you talking about? Can you show me a picture/video of the problem?
     
  31. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    Sorry my personal name make some confusion.The "earth" mean the ScatteredHeightmapPlanet in Hierarchy;and the "sun",may be call it "Mars" better depending on its color,means the ProceduralPlanet.

    I record a movie.If the tree grown on a snowfield,i thick the snowfield will never turn green even on a far distance.And the mars has same problem.u can see when u approaching the planet,it color changes between red and white.
     

    Attached Files:

  32. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Well that certainly looks interesting. The "white" you're talking about is the snow that's supposed to be on the higher mountains.
    Does this issue also occur on the flat terrains?
    This appears to be an issue with the shader graphs. They should use the distance from the center of the planets to calculate their height, but something is definitly wrong there. Maybe try to open the shader graph and check if importing them somehow broke them.
    Also, what render pipeline are you using? Is this URP or HDRP in the video? Please also tell me the version of Unity and shader graph you are using so i can better debug the issue.
     
  33. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    this video use HDRP10.8.1.Unity version 2020.3.31f1c1.
    i checked the FlatTerrain Scene,this issue dont accur.but alway happen when open the EditorPreviewPlanets Scene.
     
  34. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    So it could be that this is caused by the 'camera-relative rendering' that's enabled by default in more recent versions. Can you try to disable it and see if the materials are still broken? The unity docs should discribe how to disable it:
    https://docs.unity3d.com/Packages/c...ion@7.1/manual/Camera-Relative-Rendering.html
     
  35. Dainofel

    Dainofel

    Joined:
    Oct 12, 2019
    Posts:
    35
    Hello,

    Great asset! I bought this asset, and I've been reading through the documentation to get started. I have a question:

    * If I have a really gigantic map, that needs multiple smaller heightmap chunks sewn together, is this possible? Or does the system only render one heightmap?

    * Do the mesh repeat vertices, or is the mesh built with an index list, so no repeated verts?

    * At some point I need to go to a voxel system. How easy would be to tinker with the needed parts to transform it to that? Any hints or insights you can provide for this? Would it even be possible?

    Thanks for the reply. Love the asset!
     
    Last edited: Apr 17, 2022
  36. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    I make a new urp project to test and this issue dont appear. so maybe this because of something about HDRP.
    But I cant disable the camera-relative rendering..By the docs discription ,To disable it,should edit a script value .but when i change the script,the unity editor always to correct my edit.
    And I find that,the doc said the ShaderConfig.cs locate Packages > High Definition RP Config > Runtime > ShaderLibrary.but there dont have a ShaderLibrary folder.It just locate the Runtime folder.
    If the render issue because the HDRP set the camara position to zero,so may be there is a way to recompute the position?the doc mention:_WorldSpaceCameraPos is never Camera-relative because HDRP uses it for coordinate space conversion.
     
    Last edited: Apr 18, 2022
  37. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi, thanks for the positive feedback.

    1: Yes, you can render multiple heightmaps simulaniously, that is basically how the spherical terrains work. They form a planet based on 6 different heightmaps. Just create a new entity for each heightmap and place them next to each other. However, you need to ensure yourself that the heightmaps match each other, as Orbis does not have a way of sewing them together.

    2: I don't exactly what you mean with "repeated vertices". Orbis generates a vertex grid for each terrain chunk, and then fills the grid using quads made from 2 triangles. So vertices are shared between all triangles that use it, there are no duplicate vertices inside a terrain chunk.Each terrain chunk also has vertices on it's edge (with an optional skirt), so at the borders of 2 terrain chunks, there might be some "overlapping" vertices, but they belong to different meshes in this case.

    3: A voxel system is something completely different, Orbis basically just starts with dynamically tesselated, flat plane where the vertices are offset using a height sampling function. This height sampling can be procedural, heightmap-based or mixed (scattered heightmaps). You could possible use the height sampling part of Orbis as a volume input for your voxel system, but that highly depends on how your voxel system works.
     
  38. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hm, that can probably be adjusted fixed in the shader graphs then, If you're comfortable and know how to use shader graph, you can try implementing the fix yourself. Basically it just needs to calculate the world-space position whenever the object's position is sampled.
    I'll also include the fix with a separate, hdrp-compatible shader in the next version.
     
  39. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    expect your next version。
     
  40. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    HI,maybe is the only terrain run with dots,I really like this asset.I have another question about the physics.
    It u open the havok visual debugger.u will found that the terrain collider only appear very clost to surface.if the camera go higher,the terrain collider will disappear.I think the disappear mybe because of the lod.But It will have some problem.for the Dynamic collider.Because of the terrain collider's disappear,the Dynamic collider will drop down the terrain.
    I test this both URP and HDRP.Both has this issue.This is easy to check.First ,I add physic step and Havok Physics Configuration scrpt to open the havak visual debugger.Sceond,Add physic shape and physic body to the Tree prefab.If set the physic body as a Dynamic motion Type,it will fallen when u far away from the tree.In fact,when the tree have been created,the terrain collider dont created yet.
     
  41. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi, that is working as intended. Orbis creates colliders only where specifically requested. To do so, add a "CollisionInvokerTag " component tag to your dynamic bodies, and Orbis will generate colliders there.
    Here is the documentation for it: https://orbis-terrains.netlify.app/docs/configuration/quadtree-lod-subdivisions/#collision-invokers
     
  42. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    I has checked the CollsionInvokerTag.This is a very nice idea and implement.When a dynamic body has the tag,the system will make sure the terrainCollider appear under the body.In debugger can see how the collider was created.But there is something confused me.To Test the tag ,I make a fallen test.In the FlatTerrain demo ,
    First,I create a cube with the tag and physics scripts; and copy the camera position to the cube.Second, copy the cube ,and set one copy position X value to 2000,another copy position X value to -2000.
    Then Run the demo scene.the copies work well .when the copy close enough to the ground,the collider is created and take the cube.But It is strange to the camera position cube.the camera position cube dont collide with the terrain and continue fallen,and the terrain collider appear and then disappear.But if set the copies position to be 10 and -10,this will not happen.I dont know why,maybe because the camera position is happend to be a border?
     
  43. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    A suggestion: Unity terrain has a function that could export the heightmap.as a raw file.It seems Orbis use a texture R channel as the heightmap.so could orbis use raw format to the heightmap?maybe this will make orbis more easy to use.

    additional remarks:today i find a way to make the raw format to the exr in gaia.and the exr file can used in orbis just only needed to set the texture property to singe channel.
     
    Last edited: Apr 26, 2022
  44. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    I'm not sure I'm following you. What exactly is the issue? If the cube falls through, maybe it is getting the the terrain faster than the lod's can be generated, although in most cases this would be almost impossible to happen unless you move at ludicrous speeds. Maybe there's in issue in your collision layer setup?
     
  45. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    So for the the heightmap, any texture format that is supported by unity should work with Orbis. Since .raw textures are not supported as texture format by unity, i can't read it using Orbis. Manually reading raw textures without unity through c# would introduce a whole new set of issues that i want to avoid. What you can do is convert the raw texture through an external program.
     
  46. Sunstrace

    Sunstrace

    Joined:
    Dec 15, 2019
    Posts:
    40
    I have tried a few days to convert the terrain which created by gaia to orbis;and i finally get some pretty planets.I played it with rival character controller. i should say,orbis is a powferul terrain mesh solution.

    about the physical,i think the cube falls maybe is the terrain collider haven't be created.When use the rival cross though the terrain,sometimes there will miss a piece of collider.That can be seen in the debugger view window.
    And there is another issue.Gravity direction seems not fit to the rival character.The character's up direction always be (0,1,0),so when it goes to the sphere's edge,it will go out of the sphere.I am not sure this is a question of rival or not.

    I also has a question about the heightmap format.The document said:"Heightmaps are stored internally as an array of ushort, allowing for up to 16 bits of precision at each pixel.",Does that mean the heightmap range is 0 to 1? as i know,some heightmap format is -0.5 to 0.5 or other type.When i use the gaia exr texture as heightmap,I must modify the height scale value and the positon y value to make the terrains looks same.

    Upgrate:the gravity issue has been solved by rival.
     
    Last edited: May 8, 2022
  47. sebascore

    sebascore

    Joined:
    Apr 27, 2022
    Posts:
    22
    did you profile this on mobile and how does it fare?
     
  48. davidus2010

    davidus2010

    Joined:
    Dec 4, 2017
    Posts:
    72
    Hi, no i haven't had the chance to compile it on mobile. It is also hard to give exact numbers here as the performance impact depends heavily on the lod settings and chosen generation method.
     
  49. Dist0

    Dist0

    Joined:
    Oct 28, 2017
    Posts:
    15
    For myself, on previous version, I've made it to run at 72FPS (vsync) on oculus quest 1 but I've used a custom shader for that. (The shader included in that previous version was a little too costly on that platform, and i don't know if there are any improvement on the shader since)
     
  50. Krooq

    Krooq

    Joined:
    Jan 30, 2013
    Posts:
    194
    Hey @davidus2010, any chance you are working on an Entities 0.51 update for Orbis?