Some days late again, but here comes the review of June and the list of things too be done.
Layered Materials
I finished the layered materials. I even finished it four times, every time but the last something new crept up. The first time I thought I was finished I had only implemented all the functions, but was already aware of a "small issue". There I knew, that the volumetrics would no longer work, as the handling of the medium was not correct.

The next thing I found out was, that refractions didn't work. First it was some setting not being stored. After quite some work, I thought again that I was finished with this thing. Then I got hindered by bad interface design. The way I had defined the exponents for the filter was unusable. I fixed it and then was able to render a picture to prove to myself that it is indeed working.
And I had found the next problem. The layered materials still had a problem with refraction, but a different one this time, this time the back faces were wrong. After some more work, I finished the layered material for the third time.
And then I did it, I actually finished the layered materials. I proved it working by using it and getting a result as expected. Then I quickly stopped testing it so I won't find more problems.
Texture Shader
I also finished the implementation of a new texture shader. This shader can map a texture to a small part of uv-space. Think of it like sticking a label onto a bottle, you don't want to texture all of the bottle just for the small label, as you need a huge texture to create a readable label.
The first issue was to get some representation for OpenGL. I implemented that as simple as possible, it just uses a big texture over the complete object. I should probably turn to a GPU shader, but as I still have other issues I opted not to do that. The most important issue is, that with layered shaders the materials should all be represented, currently the top most is the only one that actually is and this material makes most sense when used in a stack of materials.
Adding it to the raytracer was quite simple. I basically took the code for the existing texture material and only manipulated the uv-coordinates.
Ward BRDF
I also finally started with the Ward BRDF. This is something I was very keen on starting. I hope to soon have first results to show. It should make much better lighting possible as it is quite a bit better than Phong. It especially can do glossy reflection and anisotropy, something which could be added to a modified Phong shader, but I think is pointless.
Predefined Views and Four View
I finished with one of the smaller features I started a month ago, the predefined views. Basically I try to make some predefined views easily available. E.g. the six default directions to view an object. But I also added the cameras directly to the menu which should make some editing much easier.
Then I started to make the Four View a bit more flexible. The Four View is a set of cameras relative to an object. They are three orthogonal and one perspective camera. The orthogonal cameras can be from the six possible directions front, back, left, right, up, down, but they always use the same coordinate system to define the directions. The addition was the ability to change the coordination system used. I even managed to test it on the cat model.
Rotational Constructor
This month I also took some reference photos, I haven't posted them yet, actually they are still on the cameras CF card, I haven't even transferred them yet. Most are of rotationally symmetric objects or nearly symmetric ones like bottles, drinking glasses or a vase.
To model those I started to add a new constructor, the rotational constructor. Currently I only work on a constructor for the polyhedron class, but perhaps I should also implement a native class. If I used splines instead of the line segments I currently work with, I should be able to create a nice raytracer implementation directly rendering the object. Especially with everything transparent that would make a lot of sense as there wouldn't be any edges.
Game
I continued with constraining the car to the track. It is still as boring stuff as it was before. But at least I made progress. First I managed to implement some geometry stuff to find an intersection point between a plane and a line. Then I added the line segment and also started with a function to get the closest point on the line to a given point.
Schedule for June:
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
Finish the Rotational Constructor
- 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
It is August and I can finally do the review of July. Ward BRDFAfter 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 p
Tracked: Aug 02, 15:53