It is August and I can finally do the review of July.
Ward BRDF
After I had started the implementation of Ward BRDF last month I started early in the month to actually implement it in the raytracer. But before I could even start I still had to fix a problem, I couldn't change to Ward BRDF and back to Phong without the program crashing. Next came the boring stuff to get the raytracer to actually create the right kind of shader and to access it.

The next step was to implement the deterministic parts of the shader. I was not exactly impressed with the results, but it got me thinking about brightness. And the calculations were not even correct, so I had to fix them. But then the shader started to look acceptable.

The next thing I found out was, that there was something wrong. Something was obviously strongly dependent on which of the two triangles was hit. I soon found out, that it was not exactly a bug, but that I had forgotten something. I don't supply the materials with the u- and v-directions, but only with data to calculate them if needed. In all the time I have used the abstraction I never needed to do that. So now was the time to implement that.
And then I hit a major problem. The release version of the raytracer crashed. That led to a big deviation, the change of the hit processing in the raytracer. I have since found out, that I was totally on the wrong path.
Hit Processing
A big problem led me to change the hit processing in the raytracer. It turned out, that I have done it for the wrong reason, but I am glad I have done it. The hit processing was the single most problematic thing which hindered me to multithread the raytracer. Now I have one thing to change (the grid is using mail boxing which needs to be made thread safe) and then it should be possible to have a multithreaded raytracer.
Rotational Constructor
After starting the Rotational Constructor in June I continued and finished it in July. It has already seen some use, see the Small Objects.
But at the start of the month I was still very far from a working modifier. First I was still working to allow a modifier to draw its own stuff. But drawing is only useful if I can also select the stuff I have drawn. An so I had to add support for selection for modifier created graphical objects. I was even able to move vertices, but also found out, that I needed to work a bit more on selections. The problem once again was that the edges got picked when clicking on a point. As I already know how to handle that problem, I just extended functionality and gave the modifiers their own selection filters.
Then I extended the rendering stuff to make it possible to render vertices as selected. The modifiers had not been able to do that before. And I added something important, a function to check if a movement was a drag or a click. The Rotational Constructor is still the only part which uses this function, but I still intend to switch all the others too.
After a bit more work, the constructor was finally working. But I was not satisfied yet and so started to add some more features. As I now know that was a great decision, I didn't use one of them (the constraint to an angle), but I use the grid all the time. But first the angle constraint resulted in a lot of work. I added some stuff to the UI and then found out, that I had not really an idea of how to implement that constraint. But I got over that problem as well and started with the grid.
Totally surprising it turned out to be not so easy to draw a grid. Strange how things get more complicated when you actually start to implement them. Another thing was, that drawing and using the grid was completely different, using it is totally simple. Which is good news, if I add the grid to another modifier it will be much easier as the complex part (drawing it) has been done. And then I finished the constructor.
Game
For another month I was working on constraining the car to the track. But at least I made progress this month. First I got every thing implemented, albeit untested to actually compile and run the game. One week later I found out, that it didn't work. Then I managed to damage a matrix and fixed some initialization code. After a week I found out, I had programmed a balloon and not a car. And again I see the end of this stuff. I have fixed a lot of little bugs now and I have hopes it works next week.
Small Objects
I have added a new little todo to the list, create four simple or one medium complex object per month. Surprisingly I nearly managed to make it for July although I only made that decision in the last week. So here are the four objects, two of them in one model each:
| Plates | Cup (unfinished) and Saucer |
 |  |
 |  |
Schedule for August:
Development - Editor/Raytracer - New Stuff
- Finish the Skeleton handling.
- Add some simple form of hair.
- New operator for landscapes (short description)
- Rewrite 'Add Edges'-modifier to make it possible to cut a face along a fragmented edge
- Add moving constraints
- Add timelines for better animation support (description)
- Make the anivals exportable (description)
- Chamfer modifier
- Handle collisions of the cloth and the body
- Parallax mapping
- Add Depth of Field (description)
- Ward BRDFs
- Packet Tracing
- Parallel Tracing
- Speed up the OpenGL representation of polyhedron
Modeling
- Texture the character and the pieces of cloth.
- Add the skeleton to the character and the pieces of cloth.
- Model a tank top.
- Model some pants.
- Model some shoes.
- Model some skirt
- Model hair for character.
- Start on the second character.
- Continue on the ship.
- Continue on the Lab scene
- Finish Cat
- Start Bunny
Small Object - Modeling
Model four small or one medium sized object per month
Development - HTTPD
- Add the handling of compression.
- Do the benchmarks.
- Add connection to postgreSQL.
Development - Modeler and HTTPD
- Paper Doll System
Website
- Create Wallpapers
- Create Wallpaper page
August has passed, so here is the review. Raytracer InfrastructureI worked quite a bit on the general infrastructure of the raytracer in the last time. First the material stuff, then the hit structure, which I fixed at the beginning of August, later
Tracked: Sep 05, 14:23