It's fairly simple, you have a square that has been divided into triangles, you can see this somewhat in the video, and you set the height of the vertices of the triangles to be the result of the noise function.
@Tyler11440 See the wikipedia page for an introduction. You can make a bitmap from the perlin noise function then draw the terrain using the heights in that bitmap, or as I do, just call the perlin noise function for a grid of height points each time you compute a new terrain node.
Very very very veeeery impressive :) I am starting to love DirectX more and more, I hate the fact that it isn't cross-platform and that its used just for games and not for programs(but I don't see why it couldn't be used for other applications? :S)
I made my choice months ago by chosing OGRE3D rendering engine which IS cross platform :) although I think that programming in general seriously needs a rebuild from scratch :D
Web design has a DreamWeaver, FrontPage etc...
3D design has Autodesk Maya, 3Ds Max etc...
but programming has a.....SQUAT! even though its much older than both of those up there...don't you agree that's really a bit annoying and absurd? :)
Well, Programming does have many languages, and some of them are more suitable than others for certain scenarios. All those applications you mentioned had to be programmed in at least one language. I personally don't find it annoying or absurd, but it can be daunting. If you want to program in a cross platform language, I'd suggest you program in Java, as long as you find it suitable for the task at hand. I am still a newb though, so I wouldn't necessarily take my word for it.
Yes I know what you're saying, I respect your opinion, but I just think it would be if not easier than just muuuuch faster if somebody made some visual interface for programming, kinda like little squares representing classes or functions, then dots representing variables etc etc...
Only that would speed up programming process muuuuch more, let alone if they'd organize it a little bit better.
There are many IDE's(interactive developing environment) for various programming languages. Visual Studio is probably one of the most widely used ones. I don't recommend programming in notepad, especially for anything big or complex.
thanks knighty, I've definitely since noticed my mistake, there are a lot of chances for optimisation that I missed in this demo. I would love to go back to it an implement things like normal mapping and texturing (and a nicer lighting model for that matter, it's per pixel Lambert in this video). I've learnt a lot in the space of a year, I'm sure if I did it again there would be a great improvement. Unfortunately I'm swamped with work at the moment - maybe one day though!
Your dynamic level of details seems to be perfect!
Have you used geomipmapping or else?
I have tried myself an implementation of dynamic terrain rendering using a binary triangle tree, but it wasn't very efficient, in fact the same implementation but in a static version was a little bit better...
Anyway it would be very nice if you could indicate which technics or algorithm you have used for this purpose =D
Hi, thanks for the comment! First of all, youtube seems to lower the quality of the video making the "popping" effect of the LOD less noticable. In the actual program it's pretty bad.
I tried a binary triangle tree first of all but quickly changed to a restrictive quadtree approach for performance reasons. This is (very) briefly explained on my journal if you're interested. You can find out more about it from section 12.5.2 of Real time rendering (a great book).
You might want to consider using a normal map for the normals (assuming you're using per pixel lighting). You did a good job covering up the seams but the light popping makes it really obvious. Nice job though :)
It's fairly simple, you have a square that has been divided into triangles, you can see this somewhat in the video, and you set the height of the vertices of the triangles to be the result of the noise function.
simonloach1804 1 year ago
Looks great, wondering codewise.. you are generating noise that is affecting how a mesh is built?? How is it done? :D
PICLex 1 year ago
@Tyler11440 See the wikipedia page for an introduction. You can make a bitmap from the perlin noise function then draw the terrain using the heights in that bitmap, or as I do, just call the perlin noise function for a grid of height points each time you compute a new terrain node.
simonloach1804 1 year ago
What exactly is perlin noise? I only see terrain get rendered from bitmaps.
Tyler11440 1 year ago
Nice
pierillion 1 year ago
Any articles or references for something like this?
weetbixiron 2 years ago
This is not realtime render nor anything close to it, now is it? :S!?
man that terrain is pretty high rez, kinda like for 3D movie production and not for game :)
VEGETADTX 2 years ago
Yes this runs real time on an nvidia 8800. Can't remember numbers but it was good performance even with all those triangles.
simonloach1804 2 years ago
WTH!? IT IS!?
Very very very veeeery impressive :) I am starting to love DirectX more and more, I hate the fact that it isn't cross-platform and that its used just for games and not for programs(but I don't see why it couldn't be used for other applications? :S)
Thanx for answer anyways :)
VEGETADTX 2 years ago
@VEGETADTX No, DirectX is used for applications, too.
Like AutoCAD and whatnot.
DirectX and OpenGL performance is mostly based on the video card, so you could do this in realtime in OpenGL also if you had a decent video card.
cyborgtroy 2 years ago
Thank you for reply! :)
I made my choice months ago by chosing OGRE3D rendering engine which IS cross platform :) although I think that programming in general seriously needs a rebuild from scratch :D
Web design has a DreamWeaver, FrontPage etc...
3D design has Autodesk Maya, 3Ds Max etc...
but programming has a.....SQUAT! even though its much older than both of those up there...don't you agree that's really a bit annoying and absurd? :)
VEGETADTX 2 years ago
Well, Programming does have many languages, and some of them are more suitable than others for certain scenarios. All those applications you mentioned had to be programmed in at least one language. I personally don't find it annoying or absurd, but it can be daunting. If you want to program in a cross platform language, I'd suggest you program in Java, as long as you find it suitable for the task at hand. I am still a newb though, so I wouldn't necessarily take my word for it.
MultiBlinkey 2 years ago
Yes I know what you're saying, I respect your opinion, but I just think it would be if not easier than just muuuuch faster if somebody made some visual interface for programming, kinda like little squares representing classes or functions, then dots representing variables etc etc...
Only that would speed up programming process muuuuch more, let alone if they'd organize it a little bit better.
VEGETADTX 2 years ago
There are many IDE's(interactive developing environment) for various programming languages. Visual Studio is probably one of the most widely used ones. I don't recommend programming in notepad, especially for anything big or complex.
MultiBlinkey 2 years ago
thanks knighty, I've definitely since noticed my mistake, there are a lot of chances for optimisation that I missed in this demo. I would love to go back to it an implement things like normal mapping and texturing (and a nicer lighting model for that matter, it's per pixel Lambert in this video). I've learnt a lot in the space of a year, I'm sure if I did it again there would be a great improvement. Unfortunately I'm swamped with work at the moment - maybe one day though!
simonloach1804 3 years ago
Hi! You have achieved a very good work here!
Your dynamic level of details seems to be perfect!
Have you used geomipmapping or else?
I have tried myself an implementation of dynamic terrain rendering using a binary triangle tree, but it wasn't very efficient, in fact the same implementation but in a static version was a little bit better...
Anyway it would be very nice if you could indicate which technics or algorithm you have used for this purpose =D
patochdu77 2 years ago
Hi, thanks for the comment! First of all, youtube seems to lower the quality of the video making the "popping" effect of the LOD less noticable. In the actual program it's pretty bad.
simonloach1804 2 years ago
I tried a binary triangle tree first of all but quickly changed to a restrictive quadtree approach for performance reasons. This is (very) briefly explained on my journal if you're interested. You can find out more about it from section 12.5.2 of Real time rendering (a great book).
simonloach1804 2 years ago
You might want to consider using a normal map for the normals (assuming you're using per pixel lighting). You did a good job covering up the seams but the light popping makes it really obvious. Nice job though :)
knighty 3 years ago
nice! and very smooth! :D
steiwher 3 years ago
where did you get that program?
anyway 5/5 :)
wasitrealy 3 years ago
Cool
zoldri1 3 years ago
Nice.
zebesmanman 3 years ago
What technics / algorithms are you using? Are there any tutorials / books you can recommend on this topic?
w4Yp0iNt 3 years ago 2