🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
![Improving terrain textures](http://members.gamedev.net/ysaneya/Infinity/terrain_tex_6.jpg)
So, i have improved by a lot the way the color table is generated.
It's similar to texture splatting; i have a set of layers (12 here), that each contain some conditions on the altitude and slope, an interpolation power, and a color. In the color table, for each texel i get the slope and altitude, a…
It's similar to texture splatting; i have a set of layers (12 here), that each contain some conditions on the altitude and slope, an interpolation power, and a color. In the color table, for each texel i get the slope and altitude, a…
![Starting to work on the color map](http://members.gamedev.net/ysaneya/Infinity/terrain_tex_4.jpg)
I'm using a 2D lookup table where i encode U as the slope of the terrain, and V as the altitude. This table is pre-generated on the CPU, and so far only contains 4 constant colors (for a quick test).
In the pixel shader, i sample the terrain and get the normal / altitude. I then use normal.y as the …
![Improved (and faster) terrain normals](http://members.gamedev.net/ysaneya/Infinity/terrain_tex_3.jpg)
I successfully removed the blur passes, which increased the performance by a lot, and should help to avoid the seams problems in the whole terrain.
It's a bit tricky, but it now works that way:
1. I'm generating a 33 x 33 normal map.
2. I'm upsampling that normal map into the 512 x 512 texture; normal…
It's a bit tricky, but it now works that way:
1. I'm generating a 33 x 33 normal map.
2. I'm upsampling that normal map into the 512 x 512 texture; normal…
![Terrain texturing](http://members.gamedev.net/ysaneya/Infinity/terrain_tex_1.jpg)
I started to work on the texture synthesis for the terrain chuncks of my planet.
In the past, i have tried many different approaches. Namely:
1. Texture splatting: i've got many texture layers (grass, rock, sand, snow, etc..) and for each vertex of the chunk, i assign some weights to these textures. …
In the past, i have tried many different approaches. Namely:
1. Texture splatting: i've got many texture layers (grass, rock, sand, snow, etc..) and for each vertex of the chunk, i assign some weights to these textures. …
![The gamedev effect](/static/media/user/generic-user.png)
The gamedev.net effect
Fortunately i upgraded my web host a week ago, in prevision of the opening of my site..
Fortunately i upgraded my web host a week ago, in prevision of the opening of my site..
![Minas Tirith demo available](/static/media/user/generic-user.png)
I have finished to upload the latest version of the Minas Tirith demo. Get it here.
Please note that it requires a good graphics card (128 Mb of video ram, 256 Mb advised), the latest drivers, and also a solid amount of RAM (512 Mb min, 1 Gb advised).
Please note that it requires a good graphics card (128 Mb of video ram, 256 Mb advised), the latest drivers, and also a solid amount of RAM (512 Mb min, 1 Gb advised).
![Website opening](/static/media/user/generic-user.png)
It's been a lot of work, but i wanted to be in sync with gamedev's first image of the day. So Here it is. There might be a few bugs with some browsers, that i'll fix after i relax a bit.
![Minas Tirith viewer 9](http://www.fl-tw.com/Minas-Tirith/mt9_2_small.jpg)
Soon to come (probably tomorrow, we still need to do some tests).
It now has a few textures, a lot of new geometry (approximately 4.5 millions triangles), and the viewer is now using occlusion culling (with hardware occlusion queries) and level-of-detail to reduce the polycount. There are still some…
It now has a few textures, a lot of new geometry (approximately 4.5 millions triangles), and the viewer is now using occlusion culling (with hardware occlusion queries) and level-of-detail to reduce the polycount. There are still some…
![More work on LOD](http://members.gamedev.net/ysaneya/Infinity/lod_all_small.jpg)
I've taken a building from the Minas Tirith project (the library), and ran my LOD algorithm on it.
I've composited the results in a single image where:
- LOD 0 is 100% polys,
- LOD 1 is 75% polys,
- LOD 2 is 50% polys,
- LOD 3 is 25% polys
It's pretty slow at calculating the LODs, around 5 minutes right …
I've composited the results in a single image where:
- LOD 0 is 100% polys,
- LOD 1 is 75% polys,
- LOD 2 is 50% polys,
- LOD 3 is 25% polys
It's pretty slow at calculating the LODs, around 5 minutes right …
![Website coming soon](http://members.gamedev.net/ysaneya/Infinity/website_small.jpg)
This week end, i've been mostly working on a website for Infinity. I'm planning to open it sometime during the next week. I have upgraded my web host account to support a higher bandwidth (i now have a 2 Gb disk + 60 Gb traffic account). I designed it myself with my small programmer's hands, and i'…
![Level of detail](/static/media/user/generic-user.png)
A quick update: i'm probably going to be busy for the next days working on level-of-detail, as the deadline for the next Minas Tirith viewer is coming. I am implementing LOD for static meshes. I had already implemented that algorithm some years ago, so i think it will mostly be a matter of getting …
![New video](http://members.gamedev.net/ysaneya/Infinity/atmosphere_8_small.jpg)
A new video is available, which shows:
1. Me landed on an Earth-like planet
2. Going to the space station in low atmosphere
3. Landing on one of the secondary, Earth-like, blue moon.
4. Looking back at the Earth planet.
Disclaimer: the planet's terrain is still not in, so it's completely flat in the vid…
1. Me landed on an Earth-like planet
2. Going to the space station in low atmosphere
3. Landing on one of the secondary, Earth-like, blue moon.
4. Looking back at the Earth planet.
Disclaimer: the planet's terrain is still not in, so it's completely flat in the vid…
![Space station back, and new cockpit](http://members.gamedev.net/ysaneya/Infinity/station_4_small.jpg)
One of my friend, Nicolas, has been kind enough to make a small test model of a fighter cockpit. Do not mind the quality: lighting is basic and there's no textures. It's just to give an idea of a 3D cockpit. I specifically asked him to make something very lightweight that doesn't take a lot of scre…
![Planets seen through the atmosphere](http://members.gamedev.net/ysaneya/Infinity/atmosphere_11_small.jpg)
I have a feeling many people will like that update :) Mostly screenshots. I've implemented planets as seen through the atmosphere of another planet. It works by combining the extinction and in-scattering equations separately with the color buffer. In other words, it correctly blends the atmosphere …
![Pipeline system description](http://members.gamedev.net/ysaneya/Infinity/pipes_diagram_1.jpg)
I just realized that i never described the pipelining system of my engine.. one of the designs i'm the most proud of. So this time you won't get any eye candy :)
My graphics engine is designed around the concept of pipes. Each pipe is an object responsible of rendering a subset of the scene graph wi…
My graphics engine is designed around the concept of pipes. Each pipe is an object responsible of rendering a subset of the scene graph wi…
![Two planets](http://members.gamedev.net/ysaneya/Infinity/planet_full_23_small.jpg)
I've added an array to hold a variable amount of planets. I also reorganized the code to give to each planet different parameters. I still have a lot to do in that area. For example, even if it's not that visible, the two planets on the following screenshot have the same set of textures/clouds, but…
![More work on clouds](http://members.gamedev.net/ysaneya/Infinity/planet_full_22_small.jpg)
I've implemented cyclones and the Corriolis effect on clouds. In both cases it's basically a matter of rotating the noise vector around an axis before getting the noise values. As usual, getting good parameters is tricky.. i've also fixed the opacity of the atmosphere at low altitudes (but still se…
![A few improvements](http://members.gamedev.net/ysaneya/Infinity/planet_full_10_small.jpg)
A new serie of screenshots.
I've mostly been working on memory optimizations. Last time i tried running the planet with 2048x2048 textures, i got a crash at 2 Gb. What ? Two Gigabytes for high-resolution textures ? Something had to be wrong. But at the time i didn't investigate. Turns up i had forgo…
I've mostly been working on memory optimizations. Last time i tried running the planet with 2048x2048 textures, i got a crash at 2 Gb. What ? Two Gigabytes for high-resolution textures ? Something had to be wrong. But at the time i didn't investigate. Turns up i had forgo…
![Final Earth model](http://members.gamedev.net/ysaneya/Infinity/planet_full_5_small.jpg)
I think i can safely say that now, everything is close to what i envisionned. In disorder, i fixed the sun color at right angles, the contrasts of the starfield, the quality of the cloud textures and adjusted some parameters. The first screen is an Earth-like planet with an atmosphere thickness of …
![Atmosphere bug](http://members.gamedev.net/ysaneya/Infinity/atmosphere_7.jpg)
I'm still working on the atmosphere, and i'd have to say a lot, but i have no time now.. so here's a quick summary.
I tried to implement the algorithm by putting everything in two lookup tables textures, and multiplying them together in a pixel shader. It worked, but i had some artifacts and could n…
I tried to implement the algorithm by putting everything in two lookup tables textures, and multiplying them together in a pixel shader. It worked, but i had some artifacts and could n…
![Atmosphere tests](http://members.gamedev.net/ysaneya/Infinity/atmosphere_4.jpg)
In the past days i've been working on atmosphere and scattering effects. I'm using the algorithm described by Lutz Justen in this thread. It normally involves a lot of calculations in a vertex shader, including two costly sphere/ray intersection tests. So i'm now trying to offset this work into loo…
![Another update](http://members.gamedev.net/ysaneya/Infinity/planet_tex_4.jpg)
Still playing with the parameters. I'm now simulating atmosphere colors (while waiting for a proper implementation) by alpha blending between the ground color and a blue-ish color at 80%. Clouds alpha adjusted too. Added a kind of specular effect (as seen on the left side) that does not satisfy me.…
![Clouds generation](http://members.gamedev.net/ysaneya/Infinity/clouds_gen.jpg)
I'm now working on generating textures for planets, at a global scale level (ie, the textures you see from space).
I just finished a short experimentation with clouds, and i like the result. I am combining two distorted fBm noise functions. A distorted fBm function is like your standard fBm, but ins…
I just finished a short experimentation with clouds, and i like the result. I am combining two distorted fBm noise functions. A distorted fBm function is like your standard fBm, but ins…
![Multithreading issues solved](/static/media/user/generic-user.png)
That's going to be a long entry, and i will talk a bit about multithreading issues in a Windows environment.
A. Heap contention
After i finished my starfield implementation, i tried to put it in a separate thread in order to continue the rendering in paralell. It worked well except that the framerate…
A. Heap contention
After i finished my starfield implementation, i tried to put it in a separate thread in order to continue the rendering in paralell. It worked well except that the framerate…
![Starfield video](http://members.gamedev.net/ysaneya/Infinity/space_backg_11.jpg)
Lutz asked for a video of the 360? starfield, so here it is (WMV 9). Note that the exposure in that video is constant, as i haven't coded the automatic exposure yet.
And the traditionnal screenshot:
And the traditionnal screenshot:
Advertisement
Popular Blogs
Advertisement