Tuesday, October 21. 2008
I have been working on the river modifier for some times without any significant result and so didn't post about it. I am still trying to fix the issue, that the sides of the river bank are very steep. I think my current implementation would work, it is just very, very slow. But I have started to think about it and I think the idea to fix those parts is wrong. I always knew that I did something which is wrong from the start, as currently I define the terrain and then add a river which does local modifications. In reality the river very much shapes the terrain. But I don't want to work in that way, as it makes it very hard to control what you end up with, as I would basically run some simulation and the result would be governed by coefficients which define the soil and very much by random fluctuations. So to have more control I decided to do it differently. But now I run into a different kind of problem, I have to be careful how I place a river. I can now do completely impossible things, like adding a river which starts in India and ends in China. That river would "only" have to pass the Himalayan mountains. So if I add the code to create the 45° slope after the river bank it would cut a gigantic V into the mountains, 8km deep (the Colorado river would look like a lazy little rivulet compared to that as the Grand Canyon is "just" 1.83km deep, my valley would be more than 4 times as deep and 16 km wide with incredibly flat sides in a perfect 45° angle). As the Grand Canyon proves there are rivers which dug deep into the terrain, but there the 45° are obviously not correct. So it seems, that the solution I am looking for is different than what I have been trying. I should again limit the width the river can influence to get the speed problems under control and if that is not wide enough, I should probably consider it a modeling problem. A river which has to dig itself in on such a major scale will have strong effects on the terrain, so the terrain I am modeling would already have to take that into account and the river modifier should then only do small scale changes. I guess I will try to change the code into that direction.
Sunday, October 12. 2008
I didn't do a lot today. I modeled a bit to get the flower right and missed a modifier I have planed to do for some weeks. I think I will soon start on it, but first I will continue with the edge loop modifier. It is very useful as is, I used it to create a mold for the general form of the leaf at the bottom of the flower. But there are still weaknesses and I want to solve that. The second thing I did was to gather more data, both for plants and terrain. I bought a GPS logger on Friday (or to be precise it arrived on Friday) and went out to gather a bit of data. I still have no good feeling how to model terrain, so I hope that it gets easier if I can associate the abstract way to input this stuff with the surrounding I know. And that is easiest if I just walk around while having the logger in my pocket. As I also take my camera with me I often also take pictures of things I plan to model or want to use as reference. But this data gathering hurts my feet, programming is much less exhaustive.
Monday, April 28. 2008
I today strangely ran into problems which were related to my change from VC6 to VS 2008 quite some time ago. As I had no more problems with VS 2008 I yesterday finally decided to uninstall VC6. Today I noticed there were small problems, one was that the resource compiler was removed together with VC6, easy to solve with a repair installation. Also a difference between VC6 and VS 2008 is, that the later doesn't bring the OpenGL-headers with it, you have to install the Windows SDK (the libs are enough). The one problem which I still am working to resolve is a bit funny. I couldn't execute my programs (or more correct the debug version of my programs), a DLL (MSVCRTD.DLL) was missing. That is a debug-DLL from VC6 and was removed together with the compiler. It turned out, that it was the libpng which was causing it. The debug version I was trying to use was compiled long ago with VC6 and needed the debug-DLL. I just recompiled it with the current compiler which should solve the problem. I didn't manage to finish recompiling all of my project so couldn't test if it works now.
Friday, July 20. 2007
Something which only occurred to me recently when I read a bit about Java Mobile 3D was, that I generally ignored some of the abilities of the glNormal and glVertex functions: the ability to use integers. In mobile applications that is quite important, because most of the devices implementing the mobile 3D variant are lacking a floating point unit. So they have to emulate the FPU and that means, it is probably slower. So if possible you should use integers there.
Continue reading "Optimizing Memory Usage in GPU"
Sunday, July 15. 2007
I have been looking a bit into Java3D and the mobile equivalent (M3G) and find them both quite interesting. I never was a big fan of Java and I doubt I will become one, as a, I think, not too bad C++ programmer Java often is missing features I use in C++ all the time. The other reason I never really got into Java is the strange "Java is way better than C++" stuff you read in any book about Java. I really don't get why, the two have different scopes and different applications. In some things C++ is much better due to the high control over low level things, but I am quite sure in Java it is easier to get things right, because you don't have to think about low level stuff when you really don't need to.
Continue reading "Java and Mobile 3D"
Saturday, June 23. 2007
I downloaded and installed the free version of Bryce 5.5. It was mentioned in the OpenGL-ticker I have on the left side, you have to get a serial number from daz3d, when you install the program it will ask you for it. You can get it from www.daz3d.com/bryce55, you will have to give some personal information. I played with it a tiny bit today. I have to admit I was curious about how the height maps are created and found the same terrible stuff I also have in my program. Basically you can paint them or use some fractal algorithm to create them. After you created the base map you can then modify it. The tools are more elaborate than mine, but they feel equally clumsy. It doesn't seem possible to describe where you want to go apart from drawing the map. The fractals and the modifications all seem to have that problem that you can't really work in a direction. You can apply them and try to discover something you like. But I don't see how I could create a set where I have a rough outline in my head with them. I will play some more with the program, you never know when you stumble on something which might be a good idea to implement. But I want my program to be able to compete with Bryce in the long run, so I probably won't use it for images. Probably, because should I get something nice I still might post it.
Saturday, September 3. 2005
NVidia posted a new sample in the developer section I really like. It can be found here. It is an outdoor scene containing alpha mapped grass moving in the wind, clouds moving in the sky and a pond with ripples. I think, the ripples are partially geometry, the mirroring of the water is quite nice. They posted the complete source code and images needed to create that scene. As far as I see, nothing new in that demo (all parts of it have been published in GPU Gems 2), but putting it all together surly was a nice effort. And it runs with a frame rate of 22 FPS on my 6800LE (when moving), so no dia show either. I especially like the images they used, they should help me in drawing my own and to prototype my code. I will ask NVidia, if I may use them to create renderings, their legal notice seems to say, I can't.
Tuesday, August 16. 2005
The notes (or better the slides) for the SIGGRAPH 2005 course on "Realtime Ray Tracing" are available. Even if you are not interested in the realtime part, the first set of slides is a good introduction to Ray Tracing.
Monday, July 11. 2005
I didn't imagine, it would be so hard to change the height fields to adapt to the camera position. The biggest problem is to find a suitable way first. So I made some images to find the best way.
Continue reading "Adaptive Resolution for Height Fields"
Monday, July 4. 2005
Today I finally found the problem that plagued the selection. Was a really stupid error on my side (no, I didn't think it was OpenGL, the error had to be in my program). I found out (when I continued on the Walk Mode), that the selections didn't work at all. Yesterday it only worked on pure luck. So I kept looking and finally found it. The problem was, that I created and used a new camera to setup the OpenGL view. And I forgot, that changing the transformation automatically triggered a redraw. And that changed the context of OpenGL. So that is, what had been changed and then caused the problems. As I wrote, a stupid error. But now it really works. I still cannot make any sense of the min and max values I get in the hit buffer, but now I really should be able to finish walk mode.
Thursday, June 23. 2005
Kept working at the height field and got quite some problems fixed with it. Added a gauss median filter to smooth the landscapes and I added a rather simple part to use a low resolution image to seed the fractal generator. This somewhat works (well the code is correct, but even creating a small image is hard). I will soon post some images of it. Had no time to render them. To fix the problems to create the image I will add a simple editor to define them in my program, so I can actually see the height map while defining it.
Continue reading "Height Field - 6"
Wednesday, November 17. 2004
Face normals are a very important concept. You often only want faces to be one sided. In this way, you can nearly halve the number of hit tests to be done in the raytracer. But it means, that you need a way, to define, which side is the front side.
Continue reading "Face Normals"
Friday, November 5. 2004
I think, I found a solution to the problem of yesterday, that the invisible edges create errors in lighting. I think, I will have to exclude them from lighting calculations.
Continue reading "Invisible Edges"
Wednesday, November 3. 2004
As I promised, I write a bit more about how to planarize a face. I hope you can see, that the quad above (it really is only one face) seems to be slightly bent. That is the effect of the hidden edge.
Continue reading "Planarization - Part 2"
Sunday, October 17. 2004
As I am nearly finished with the small issues I had in mind (well OK, it will still take some time, but I at least can see an end), I started thinking what to do next. Well it is already clear, that the next thing I implement is some facility to manipulate the vertices of an object.
Continue reading "Macro Constructor"
|