Notifications
Clear all

 


I use crypto.com app personally on a daily basis and its great and takes the stress out of learning crypto and the crypto debit cards are great, ask me anything on this. I will probably make a thread discussing crypto soon. REFERRAL CODE = p5mu64hcq4
 

Thoughts on the terrain rendering system


Vlastan
(@vlastan)
Senior Chief Registered
Joined: 12 years ago
Posts: 66
Topic starter  

The graphics of Pioneer are awesome and i love the terrain system, otherwise i see that the speed at wich the terrain becomes detailed when you approach it is a bit slow... something like Google maps, when the program is downloading the data for the high detail view you are watching at the moment. In fact if i want to experience the real detailed look of the planet in wich i'm landing, i have to wait some time before the view gets satisfying, and if i travel at high speed in the atmosphere, the landscape is always low quality until i stop mysfelf to let the engine stream the data of the heightmap.

Also the planet texture when watched from orbit can be very blocky and low res... i hope this will get fixed in the future 😀 (maybe with some extra detail texture passes)

Finally an even worse problem is the absence of an ambient light that makes the darksides of planets visible, but i think it is a very basic thing that will surely be added inthe future releases 🙂


Quote
s2odan
(@s2odan)
Captain Registered
Joined: 14 years ago
Posts: 1212
 

I know what you mean Vlastan, unfortunately my tests with increasing the speeds and distances of rendering the planets was not particularly successful.

You see the computer has to work out a lot of stuff for planet rendering, running dozens of equations on every spot of the planet to work out what it should look like on the next level of quality, but that all must be done in real-time.


ReplyQuote
tomm
 tomm
(@tomm)
Master Chief Registered
Joined: 13 years ago
Posts: 129
 

If someone can think of a fast alternative to perlin noise...


ReplyQuote
s2odan
(@s2odan)
Captain Registered
Joined: 14 years ago
Posts: 1212
 

Its a necesary evil. What would be nice though is to keep those parts that have been calculated in memory a bit longer. I tried this myself, but was unable to do that without also increasing the distance at which the planets were loaded at, which caused some other issues. Does that make sense? 😉


ReplyQuote
freegamer
(@freegamer)
Petty Officer Registered
Joined: 12 years ago
Posts: 15
 

I think you're looking at the problem the wrong way. Increasing the view distance is always going to hammer the CPU.

What you need to consider is ways of working out detail at a greater distance for lower cost, so that the update when you get close is barely noticeable, if at all.

Ideas:

- rendering detail direct to textures

- working out polygon detail on only the most visible features (sharp edges, ridges)

A brute force approach is obviously never going to work.


ReplyQuote
highlander
(@highlander)
Petty Officer Registered
Joined: 12 years ago
Posts: 24
 

There needs to be a slider in the options menu to control view distance, so that slower PCs can keep it as it is, and faster PCs can set the level of detail higher.

Question: does Pioneer take advantage of multicore processors?


ReplyQuote
Vlastan
(@vlastan)
Senior Chief Registered
Joined: 12 years ago
Posts: 66
Topic starter  

Now i understand that all the data is generated in real time... maybe there could be used a blend beetween procedural and preloaded textures to speed up the loading process ^^

What about the blocky textures of far planets ?


ReplyQuote
unavowed
(@unavowed)
Petty Officer Registered
Joined: 12 years ago
Posts: 10
 
tomm wrote:
If someone can think of a fast alternative to perlin noise...

Simplex noise is faster than the standard Perlin noise: simplexnoise.pdf. If I remember correctly, Perlin noise interpolates between the vertices of a hypercube, while simplex noise does the same for simplexes (hyper-tetrahedrons). Fewer vertices allows for less overhead.


ReplyQuote
jaj22
(@jaj22)
Petty Officer Registered
Joined: 12 years ago
Posts: 13
 
unavowed wrote:
Simplex noise is faster than the standard Perlin noise:

Pioneer uses simplex.

freegamer wrote:

Ideas:

- rendering detail direct to textures

- working out polygon detail on only the most visible features (sharp edges, ridges)

Neither of these help significantly because perlin is strongly limited by the detail generation cost, not by translating to triangles. Almost all the colour detail is dependent on height in Pioneer.

You're not going to get much of a speed boost without reducing the count of simplex noise calls, either through algorithm reduction (maybe 2x at best) or by replacing with MPD or GPU-generated noise. The latter two are huge projects on their own.

Adjusting view distance independent of detail isn't usually worthwhile because it's the close stuff that changes frequently. If the patches are too large there can be cases where distant terrain is overdetailed, but I haven't checked whether Pioneer is vulnerable to this.


ReplyQuote
tomm
 tomm
(@tomm)
Master Chief Registered
Joined: 13 years ago
Posts: 129
 
unavowed wrote:
tomm wrote:
If someone can think of a fast alternative to perlin noise...

Simplex noise is faster than the standard Perlin noise: simplexnoise.pdf. If I remember correctly, Perlin noise interpolates between the vertices of a hypercube, while simplex noise does the same for simplexes (hyper-tetrahedrons). Fewer vertices allows for less overhead.

Yup, I should have said Perlin Simplex noise. We use 3D perlin simplex noise.

Pioneer does take advantage of multi-core CPUs, although it only runs 1 terrain generation thread so the utilization is not near to total. (So we have 1 terrain generation thread, one sound thread and 1 'everything else' thread)


ReplyQuote
Coolhand
(@coolhand)
Master Chief Registered
Joined: 12 years ago
Posts: 112
 

Is it possible to have a hybrid system... one where you perhaps use tiled textures for mid or fine level detail... so these textures are applied to the first level of geometry that's generated with the noise, you'd have less overhead as it doesn't have to be generated on the fly, increased memory usage shouldn't be huge either.... should look pretty good also - if the underlying terrain is interesting, the tiling won't be noticeable, you can have more patterns, actually derived from photos and colour variations... If possible it would really be great to be able to integrate textures at some level anyway.


ReplyQuote
Vlastan
(@vlastan)
Senior Chief Registered
Joined: 12 years ago
Posts: 66
Topic starter  
Coolhand wrote:
Is it possible to have a hybrid system... one where you perhaps use tiled textures for mid or fine level detail... so these textures are applied to the first level of geometry that's generated with the noise, you'd have less overhead as it doesn't have to be generated on the fly, increased memory usage shouldn't be huge either.... should look pretty good also - if the underlying terrain is interesting, the tiling won't be noticeable, you can have more patterns, actually derived from photos and colour variations... If possible it would really be great to be able to integrate textures at some level anyway.

I was thinking about that 😉


ReplyQuote
RedRiver
(@redriver)
Petty Officer Registered
Joined: 13 years ago
Posts: 32
 

you guys should check out some dev journals that explicitly cover terrain generation for Infinity MMO.

it's a very similar game in concept and it's been in development since 2005 or so.

lotsa good info. for ppl who understand programming...


ReplyQuote
memnoch
(@memnoch)
Petty Officer Registered
Joined: 12 years ago
Posts: 47
 
tomm wrote:
Pioneer does take advantage of multi-core CPUs, although it only runs 1 terrain generation thread so the utilization is not near to total. (So we have 1 terrain generation thread, one sound thread and 1 'everything else' thread)

I remember writing on the Egosoft forums ages ago about why their X games don't take advantage of multi-core processors. I was told that it's very tricky to do, and only a small percentage of gamers have that setup anyway. I asked whether their next game would support it and don't remember getting a satisfactory answer.

My point is congratulations on achieving what a large professional studio couldn't! 🙂


ReplyQuote
freegamer
(@freegamer)
Petty Officer Registered
Joined: 12 years ago
Posts: 15
 

Another consideration might be offloading computation to the GPU i.e. via shaders.


ReplyQuote