Monday, 12 March 2012

Competition

When BlenderGuru announced a new competition last month, I decide to give a shot and participate in it. One month has passed, my entry is still far from finished.I still have half of texturing, fluid simulation, dynamic painting, lighting and additional modelling to do. There is only one week until deadline. One day is need for solely rendering and tweaking nuance of lighting and camera angle, so I only have six days to do real work. For the next two weeks, I have two mid-term exam and three pieces of assignment due. I doubt if I can make it. Nevertheless, even if I cannot submit the entry on time, I will still post it here. Stay tuned.

Thursday, 19 January 2012

Marble Hong Kong

I am not satisfied by the effect, but I will not work on this any more. My computer is choking on the scene so much that I can barely work on it.

Click on image for larger version.

I was trying to use the scratch marks as bump-maps, in hope of making the scratches more like scratches. Sadly, I don't know how to do it when using texture nodes. After few hours of messing around, I eventually gave up.

I don't think many will get what the picture is portraying, because of my bad skill, So I will explain it a bit. The marble pieces are Hong Kong Island and Lamma Island. I used them to represent Hong Kong, since I think that they are quite recognisable (which might actually not be). The red smoke on the left is a sandstorm, in red. The marble piece is being scratched and damaged by the sandstorm.

Saturday, 31 December 2011

Bathtub

A late update.

First try on fluid simulation. The fluid simulator is very hard to use, given that the accuracy is not high enough. For a still image, each droplet must be manually adjusted; otherwise, the droplets will go halfway through the walls.

Most of the time was used to edit the water. I didn't pay much attention to the bathtub, and I think it is too reflective and too smooth. Luckily it is blocked by vapour.

(Click image for larger version.)

4000 samples, 8 hours rendering time.

Monday, 19 December 2011

First Scene with Cycles

Cycles is official in Blender 2.61. So, what is the best way to celebrate? Use it, of course.

This is my first scene with Cycles, second render.

This is also my first try on texture in Blender (which turns out pretty bad)...

(Click image for large version.)

For this render, I mistakenly turned off the "caustics" option. This makes the glass piece lack the "shininess", and look more like plastic.

Made with Blender 2.6.1, rendered with Cycles.
3000 samples. 5-something hours of render time.

Monday, 3 October 2011

First (Programming) Language

Using C++ as a teaching language is a very dumb idea.

Programming is about all the programming concepts. Languages implement those concepts. Which language you use doesn't matter, as you are using the same way of thinking[1], expressing the same concepts.

While this is true for programming, learning programming is whole another thing. When you don't have the concepts, simultaneously learning the specific language syntax will distract you. That's why things like loop and conditional are usually taught without mentioning syntax at first. Learning semantics and syntax at the same time is hard. With C++'s complex and cryptic syntax, the distraction is so big to the point where some students never understand the programming concepts.

Take the for loop for example. In C++, the syntax of a for loop is:
for (initialization; condition; action-to-counter;)
An example is :
for (int = 0; i < 10; i++)
You can omit any one of those. In fact, you can omit all of them. Therefore, the following is a valid statement in C++:
for (;;)
This is a way to achieve an infinite loop in C++. The problem is, this obscure the line between for loop and while loop. Yes, this is a valid command, but it does not convey the concept well. Compare to the usual pseudo-code:
for i in 1 to 10
one can really see the syntax from Python:
for i in range (10)
and the one from Ada:
for i in 1 .. 10
is clearly superior, and the C++ one is really cryptic. C++ is too close to the metal; the high-level programming concepts is behind too many abstractions, or rather, details of the underlying hardware. Some may argue that it is this thing that distinguish brilliant programmers from the mediocre, but I say that this undermines so much brilliance.

Actually, this syntax of for loop comes from C, and I condemn every language that copies it. This includes but is not limit to C++, C#, Java, JavaScript, and PHP. For a programmer, learning a new syntax of a different language is a matter of minutes, if not seconds. But, for a newcomer, learning the concept of for loop from this syntax can be a painful process.

Using C++ to teach programming is a very dumb idea, especially when teaching someone who has never learnt programming before.

Pedantic footnote:

[1] With some variation. due to the characteristics and limitations of different languages, you may or may not convey some ideas or concepts in a language.