{"title":"这是一个结束:歧管花园渲染回顾","authors":"Arthur Brussee, A. Saraev, William Chyr","doi":"10.1145/3388767.3407385","DOIUrl":null,"url":null,"abstract":"1 TOROIDAL GEOMETRY RENDERING The world of Manifold Garden consists of an infinitely repeating world. That is if you fall off the bottom of the world you’ll end up on top again. We relied a sleight of hand for this effect: Duplicate the world in a grid, and teleport the player when they reach the boundary of the centre world instance. This naive approach worked surprisingly well, as long as one takes care to make heavy use of Instancing, and LODs. We created an automatic decimation pipeline that created LODs for further away wrap instances, and kept the art workflow uninterrupted. For dynamic objects, this approach was still too slow; there are n3 instances to update in the world. Instead, for these we relied on a fully GPU driven approach: • Write out transform data for the centre instance to a compute buffer • Frustum cull each instance, in each cell, in a compute shader; append visible instances to a buffer. • Use indirect dispatch to render all instances in one pass. This approach saved us from having to update separate game entities. In the future, this technique could be scaled up and used for everything, but it currently remained with too many limitations regarding sorting and LODs to be used for everything. Another interesting point to consider are shadows. Of course, in a real toroidal space light propagation is quite bizarre! Rather we pretend light is","PeriodicalId":368810,"journal":{"name":"Special Interest Group on Computer Graphics and Interactive Techniques Conference Talks","volume":"58 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-08-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"That’s a wrap: Manifold Garden rendering retrospective\",\"authors\":\"Arthur Brussee, A. Saraev, William Chyr\",\"doi\":\"10.1145/3388767.3407385\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"1 TOROIDAL GEOMETRY RENDERING The world of Manifold Garden consists of an infinitely repeating world. That is if you fall off the bottom of the world you’ll end up on top again. We relied a sleight of hand for this effect: Duplicate the world in a grid, and teleport the player when they reach the boundary of the centre world instance. This naive approach worked surprisingly well, as long as one takes care to make heavy use of Instancing, and LODs. We created an automatic decimation pipeline that created LODs for further away wrap instances, and kept the art workflow uninterrupted. For dynamic objects, this approach was still too slow; there are n3 instances to update in the world. Instead, for these we relied on a fully GPU driven approach: • Write out transform data for the centre instance to a compute buffer • Frustum cull each instance, in each cell, in a compute shader; append visible instances to a buffer. • Use indirect dispatch to render all instances in one pass. This approach saved us from having to update separate game entities. In the future, this technique could be scaled up and used for everything, but it currently remained with too many limitations regarding sorting and LODs to be used for everything. Another interesting point to consider are shadows. Of course, in a real toroidal space light propagation is quite bizarre! Rather we pretend light is\",\"PeriodicalId\":368810,\"journal\":{\"name\":\"Special Interest Group on Computer Graphics and Interactive Techniques Conference Talks\",\"volume\":\"58 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-08-17\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Special Interest Group on Computer Graphics and Interactive Techniques Conference Talks\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3388767.3407385\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Special Interest Group on Computer Graphics and Interactive Techniques Conference Talks","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3388767.3407385","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
That’s a wrap: Manifold Garden rendering retrospective
1 TOROIDAL GEOMETRY RENDERING The world of Manifold Garden consists of an infinitely repeating world. That is if you fall off the bottom of the world you’ll end up on top again. We relied a sleight of hand for this effect: Duplicate the world in a grid, and teleport the player when they reach the boundary of the centre world instance. This naive approach worked surprisingly well, as long as one takes care to make heavy use of Instancing, and LODs. We created an automatic decimation pipeline that created LODs for further away wrap instances, and kept the art workflow uninterrupted. For dynamic objects, this approach was still too slow; there are n3 instances to update in the world. Instead, for these we relied on a fully GPU driven approach: • Write out transform data for the centre instance to a compute buffer • Frustum cull each instance, in each cell, in a compute shader; append visible instances to a buffer. • Use indirect dispatch to render all instances in one pass. This approach saved us from having to update separate game entities. In the future, this technique could be scaled up and used for everything, but it currently remained with too many limitations regarding sorting and LODs to be used for everything. Another interesting point to consider are shadows. Of course, in a real toroidal space light propagation is quite bizarre! Rather we pretend light is