Nearly a fourth of February has already passed, but here it comes, the review of January.
Linking Materials
Something I had already started in December was the ability to link materials. I wanted to be able to define a material and link to it from other objects. Most of the basic stuff was already working, I continued with it and started with the ability to unlink the materials again. Then I added a list to the materials so they know which objects link to them and added the code to update those objects when something changes.
Then I started with the second big issue. Not directly related, but it made sense to extend the groups to contain the master material objects. That way all the objects contained in a group could get their materials from the group making it easy to change them in one, logical place.
Materials and Groups
As it quickly turned out, there were some problems with the groups. Some of the code for the group, the selections and the materials were interacting in an awkward way. I also had to change the UI and make some of the pages smaller. And I found out, that linking the materials still didn't work. I didn't get it to work like I originally intended, but I found an easy work around.
Channel Material
This month also saw the start of a completely new kind of shader, the "Channel Material". Something which was always a bit annoying were the limitations of my materials. I only had the "Fixed Shader" which allowed me to select a shader component for the color, one for bump mapping and finally the shader model (Phong, Ward and the like). I can only pass some values between them, as all of them need to support the same interfaces.
The new shader is supposed to be much more flexible. I hope that I can extend it so I won't need to add a programming interface for shaders.
I spare you all the details, I guess it is enough to write, that I had to do a lot of small, incremental, boring, little steps. At the end of January I was still at the beginning. I hope I can get it into a working state in February, but I won't be able to finish it, the real work will be to define some Operators.
Fixing the Area Lights
Something which never really worked were the area lights. Previously at the start of the rendering I created a distribution of some point lights. That has the advantage of being noise free, but doesn't exactly look good.
I think I have come up with a good way to distribute the area lights. I basically create a number of areas with equal size, one for each point light to use and then randomly pick a place in it for each light. The random picking is done per material evaluation. So now I get soft shadows and the algorithm leads to a low amount of noise.
But it wasn't too easy to implement the distribution to all the forms of area lights. It took some time to get it working with the circle path, the rectangle and the circle. At least it also led to a great image, where I combined the area light with the Ward BRDF shader. It really, really looks great.
Small Things
Still unbelievable, but I really finished the Ward BRDF shader in December. But last month I had thought there was still a bug in it, but it turned out to be a problem in the Spacial Subdivision Structure, a border case I had not hit before.
I also added a small change to the UI. The selection lists always took up the same amount of space, it didn't matter if it was empty or contained 50 elements. Even worse they didn't even use the space available in a dialog, that I changed.
Another problem was with transformations in the raytracer. At one place I had forgotten one, on another the sequence was wrong and I suspected that some time ago, I had even documented, that I believed them to be wrong.
And then I implemented two BRDFs. The first was a simple Lambertian BRDF, the second Oren-Nayar.
This month I really did a lot of those small fixes, the CSG operations also got some bug fixes. There are still bugs in that code, but slowly it should be much more stable than when I "finished" it.
And the final addition was a new 2d constructor. Now I can also define rings with a defined width.
Game
In January I also finished the new track class. With that in place I started to extend the algorithm calculating the position and alignment of the car to interpolate the up directions. Then I started to define a new kind of textures, the "Track Textures". Those are supposed to be made up from smaller pieces so the textures don't look strange when the track gets wider or narrower.
Surprisingly I got quite a bit of the track textures done. The DTD defining the format is finished, a simple example written and the parser started.
Monthly Items
This month I nearly didn't make it. The first object was the cabinet, I used it to test the linking of materials and also the additions to the group. The second is a wall clock.
Schedule for February:
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
Some days late, I totally forgot about it yesterday, but here is the review of February. Channel MaterialMost of the month I worked on the Channel Material I had started in January. I got the basic stuff completed and also mostly got the editor worki
Tracked: Mar 07, 19:46