Before the Cave, part 4

“You mean we read each others’ minds?” The mammoth looked intrigued.

“Yes, and no. Only the stuff that we would say to each other if we were talking.”

“Well that’s good. I wouldn’t want my privacy invaded by a lower creature.”

Ilara was too excited by this new development to be offended. “You think of humans as lower creatures?”

“Well, yes. As a rule you are puny and small, you have tiny ears and feet, no tusks, and no noses to speak of. It’s a wonder you survive as a species. I expect you will all die out soon.”

“And yet here you are speaking to me.”

“I suppose I am, in a manner of speaking. You as an individual seem pleasant enough. There may be hope for your species.”

Ilana found herself oddly pleased by this. There was something satisfying in being the hope for one’s entire species. She bowed ceremoniously. “The hope of my species, at your service.”

Before the Cave, part 3

“You’re the one whose mouth isn’t moving,” Ilara pointed out, trying to sound polite, and knowing she was not doing a very good job of it.

“My mouth isn’t moving,” the mammoth replied, “because I am not eating. I do not eat when I talk, and I do not talk when I eat. Besides, your nose isn’t moving. Of course with such a tiny nose, like whatever that little thing is on your face, I am not surprised.”

Ilara was starting to get very annoyed. She was about to respond with a really great insult when she had a thought. “Do you talk by moving your nose?”

“Doesn’t everybody?” The mammoth sniffed, eyeing her suspiciously, and paying especial attention to her tiny nose, which had not moved even once during this entire conversation.

“I don’t think,” Ilara said, “that this has anything to do with my nose or with your mouth.”

“You mean,” the mammoth replied, “with my nose or with your mouth.”

“Yes, that too.”

“You mean that either.”

“Yes, that either, um, too.” She didn’t see any point in quibbling. “I think we just sort of can tell what each other is thinking.”

Before the Cave, part 2

“Hello,” said the mammoth.

This puzzled Ilara. As far as she knew, mammoths don’t talk. It seemed to her that this mammoth was breaking some fundamental laws.

And what’s the point of having laws if you’re just going to break them? In any case, the mammoth clearly wasn’t doing what it was supposed to.

Still, the would try to be reasonable about this. “I’m pretty sure you’re not supposed to be talking,” she said. “You’re a mammoth.”

“And I’m pretty sure you’re not supposed to be talking,” the mammoth replied. “You’re a human.”

Before the Cave, part 1

Ilara knew she wasn’t supposed to wander too far from the tribe. But then, she did a lot of things she wasn’t supposed to do.

In this case, the whole idea of “supposed to” seemed unfair. After all, it wasn’t as though she really had a choice. This was where the sighting had been, so this was where she needed to be.

And right now what she really needed to be was very quiet. The tall grass was dry, and easily rustled. If she made any noise that would ruin everything.

She was so busy being quiet, and trying very hard not to move, that she didn’t realize she was no longer alone. Until she felt, more than heard, the giant presence behind her. Startled, she whirled around.

She knew she was supposed to be afraid. But oddly, she felt no fear at all.

The mammoth was looking at her curiously. It didn’t seem afraid either. That was a good start.

“Hello,” she said.

And novel undertakings

For a change of pace, I am going to try to tell a long-form story within these pages, a bit each day. It will be a fictional tale, but one that has been on my mind of late.

My friend Kris Layng has agreed to provide the occasional illustration. I am quite sure his beautiful images will lend greater resonance to my humble words.

Mammoth undertakings

I have now written about a month of posts on computer graphics programming for non-programmers. And it feels as though I’ve scribbled enough on these particular cave walls — for now.

I will very likely take up the torch again. But if I do, I think I’ll head off into a different direction, and try to illuminate some other unexplored passageways.

Speaking of caves, one of the wondrous things about computer graphics is that it’s like that old Denisovan parable about the woolly mammoth: If you stand too close to the mammoth, it is difficult to see it clearly.

What you can glimpse from that viewpoint looks a lot like disparate parts from different animals. Yet once you step back, you begin to realize how all those various parts fit together, and the combination is rather elegant.

Computer graphics is like that: It’s a great big beautiful woolly mammoth of seemingly disparate parts. But if you take a few steps back within the cave and lift your torch high enough, all of those parts mesh together to form something completely glorious and beautiful.

CG programming for non-programmers, lesson 28

In lesson 28 we go for a more painterly effect.

Fractal textures are very evocative. Once you start using them to mix different colors, you can get some really cool effects.

Here we are creating a more painterly sky, by using the cloud texture as a kind of procedural paint brush to evoke a sense of sunlight and shadow on a cloud covered day.

You can see this lesson by CLICKING HERE.

CG programming for non-programmers, lesson 26

Once again, small changes to evoke nature can produce a very large impact on the visual result. In lesson 26 we make just a slight modification to our fractal texture: We use it to mix together a sky blue and a white cloud cover.

Just as in painting, the choice of color palette is very important. But why take my word for it? Try playing with various values of vec3(RED,GREEN,BLUE) to explore the possibilities.

You can see this lesson by CLICKING HERE.

CG programming for non-programmers, lesson 25

The noise function doesn’t really do all that much by itself. It’s when you use it in creative ways that things really start happening. And that is just what we do in lesson 25.

For example, a single frequency of noise looks kind of boring: It creates textures of just one size. But if you scale the argument to the noise function, that will change the frequency of the resulting texture. The more you scale up the argument, the higher frequency will be the result, and the finer will be the resulting texture.

Just like mixing musical notes of different frequencies to create chords, we can mix different frequencies of noise to create more interesting textures. For example, by summing together octaves** of noise we can create fractal-like textures.

You can see this lesson by CLICKING HERE.

** An “octave” in music is a power of two in frequency. For example, the A below middle C on a piano keyboard is a sound that vibrates 440 times per second. The next higher A on the piano — one octave higher — is a sound that vibrates 880 times per second. So for every successive octave, frequency doubles. We use the word “octave” in exactly the same way, except that we apply it to visual texture. For example, if we vary a wiggly texture so that it wiggles twice as many times across the screen, we say that the frequency of the new texture is one octave higher.