Older blog entries for bratsche (starting at number 303)

GTK widget
    Markus and I started working on a GTK widget for embedding NeoEngine rendering into. We're actually doing it in gtkmm rather than GTK+, because NeoEngine is written in C++ and developers are more likely to prefer to write their apps in C++. Plus it is almost sickeningly simple to write it in C++ vs writing it in C.

    I've been mostly busy re-organizing the code into a library, and dealing with auto* hackery today. I made a simple test that renders a triangle in a GTK window and posted a screenshot.

Gnome vs. Vanilla GTK
    I'm so sick of people telling me stupid reasons for why I should use vanilla GTK rather than using features from libgnome, libgnomeui, etc. The only good reason I can think of is if there is a portability issue (there may be, or there may not be.. I have not checked). But today I was getting stupid arguments like, "Some people have somehow fucked up something in their distro or are doing something wrong when compiling it". This sort of stuff just pisses me off. The only people who would be held back from using the extra features of Gnome, vs using just GTK, are stupid people. I don't care about stupid people.

    Another argument was that some people can't spare the extra bandwidth to download the Gnome libs and stuff. That's such bullshit. Then there was the argument that they can't really spare the extra disk space, even though it is a small amount. Bullshit.

    The application in question is a GUI developer tool for developers using NeoEngine. It's not a tool for end users. So if a "developer" is that low on disk space, I think they're going to have a hard time developing anything anyway. So this was all such a stupid discussion.

Kill Bill, Vol. 2
    Totally rocked. I'm going to go see it again next weekend, because I liked it so much. I can't wait until the release of both volumes together on DVD. I'll buy that in a heartbeat.

    I saw on Conan's show that there is a Kill Bill action figure. It's The Bride (Uma Thurman's character) in her cool yellow outfit, with a fucking big, red splotch of blood on the front of the shirt. It's so cool. But it's an amusing toy because action figures are "for kids", but I think most parents would object to their kids having this fucking bloody Uma Thurman action figure. I want to get one now! =)

NeoEngine stuff
    I added anisotropic filtering to the OpenGL device today. Keaton added the API to the engine awhile back, but only did a Direct3D implementation and I forgot all about it until Vexator pointed out in the forums that it wasn't working in the GL device.

    I started working on a soft shadow generator yesterday. That should be really cool when it's ready, I hope.

Special K
    Kasia called last night, which was really cool. She played a recital recently and said it was really good. I think she was a little annoyed that nobody told her that we were going to be in Chicago. She said she lives only a couple hours away, which I didn't realize. But then she said it's probably best that I didn't tell her since she had the recital and couldn't have gone to see us anyway.
    I Hung out with Cameron, Amy, Yi-Ping, and Monica. It was pretty cool. Chicago is a great city, and I really enjoyed the time there.

    Cameron and I watched a dog dig in about three different spots in the sand at the beach while its owner threw a tennis ball at it and it fetched. It was a lot funnier to watch than it sounds. But then we talked about supersticious pigeons, behavioral patterns, and other interesting things. Cameron and Amy and I went to the museum, which is free on Tuesdays (we liked that). Yi-Ping and Monica were going to go meet us, but they flaked out and just stayed over at Monica's place instead. We observed the emergent fashion trends of women baring a single breast, then both breasts, then back to none at all during a certain series of 18th century paintings.

NeoEngine 0.8.1 release
    While I was away in Chicago, Mattias made the 0.8.1 release of NeoEngine. Like most releases, it has some new stuff and some bug fixes. About like you'd expect. =)
Chris Forrest
    It's a sad day here again, because a good friend of mine passed away this morning. Chris and I went to the same university for undergrad, although he was a computer science major. He played clarinet in the orchestra, and that's where I met him. For the past few years he's been struggling with brain cancer, and he's been in and out of the hospital pretty often doing chemotherapy treatments and stuff. I met Josh and Anna over at the hospital a couple weeks ago and he seemed to be doing better than we expected, but apparently the last few days have not been easy for him. I got an email this afternoon from his fiancée saying that he passed away at 6:05am today, so we're all very sad.

    Chris will be missed a lot, and by a lot of people. He was the sort of guy who is always cheerful and pleasant to be around. Nothing seemed to ever get Chris down. Even when I went to see him at the hospital a couple weeks ago with Josh and Anna.. as soon as we entered the room, he's all like, "Hey guys!" in his usual exciting way.

Arcadia Design
    Arcadia Design has released a couple games based upon NeoEngine recently. The games are all pretty much the same looking, but I think they look pretty cool. Sadly, it looks like they've only made Windows versions of their games despite the fact that our engine runs on Linux as well. Oh well. It's still great to see that someone is making a finished product with our engine.
Ragdoll Kung-Fu
    I just ran across this today, and thought it was cool. Ragdoll Kung-Fu reminds me a little bit of an idea that Cameron and I were brainstorming last year for a game that would be cool to do with NeoEngine at some point. I'm really looking forward to seeing this game when it is finished and released.
Viola recital
    I went out to Denton again yesterday to hear Susan Dubois perform again. She did the Brahms Sonatensatz, Block Suite Hebraique, Rochberg Sonata, Novacek Moto Perpetuo, then Brahms c minor piano quartet. It was really cool. I really love the Rochberg sonata, but it's really hard. I actually just heard it not that long ago when Michelle LaCourse performed it in Arlington.

    Susan sounded really good. I really liked her Bloch and Novacek, and the Brahms quartet sounded great. The cellist (whose name eludes me at the moment, but he's the teacher at UNT in Denton) sounded fantastic in the third movement. I really love that quartet a lot. It's probably my favorite piano quartet, ever.

    It was a very good recital, and well worth the time of driving all the way out to Denton for. =)

GIMP 2.0
    GIMP has finally hit 2.0 today! How exciting. GIMP is one of my favorite free software programs, although I don't really use it that much. It's great to see the 2.0 release out now.

    They do make Debian's release cycle seem fast, but I think in the end it's worth the wait.

Engine updates
    I finally committed the new terrain method based upon the GeoMipMap algorithm into cvs today. The speed looks very nice.

    Someone also has been working on a new sound system for the engine and that was recently committed to cvs by Mattias, with some changes. The sound system originally only worked with DirectSound, but Mattias added basic support for ALSA as well. I have not looked at the sound device code yet, but I'm interested in seeing if we could add 3D spatial sound positioning using DirectSound and OpenAL.

    I think we're releasing 0.8.0 release tomorrow.

Terrain updates
    I used to have a single vertex buffer for one page/patch of terrain, then each block in the terrain system would contain its own index buffer that pointed into the vertex buffer. The quadtree divides down so that each leaf of the tree points at one block of the terrain, and frustum culling occurs at that point. (I just fixed terrain frustum culling once and for all yesterday finally.. the axis-aligned bounding boxes were not calculated correctly before, which resulted in incorrect frustum culling).

    One problem with having a single vertex buffer was that the entire terrain system was limited to 65k vertices, which means a 256x256 heightmap since we require the heightmap to be square in shape. You could always load multiple terrain systems at a time, but that didn't make sense. The new system provides ample vertex space, setting the limit to 65k vertices per terrain block (which is, of course, way too much). For my tests, I'm dividing my terrain blocks down to 4096 vertices each.

    Well, on paper those are the numbers. One problem that came up is the obvious disconnectivity in the index buffers between the various blocks. The index buffer of one terrain block cannot contain triangles that connect vertices from one vertex buffer with vertices from another. The result looks something like this. Those gaps are due to the index buffers not connecting. Each block is 64x64 vertices, and the entire system is 256x256.

    So the solution is to add a little "buffer strip" along the edges. A block needs to have 65x65 vertices, such that row 65 of both axes is set to the same position as rows 0 of the neighboring block, and they look like they're all one mesh. That looks like this. Much better.

    But for other purposes, I don't want the heightmaps to be non-power-of-two images. I still want the same heightmap. I ended up making the terrain systems internally add the extra buffer vertices, while the user of the engine still sees the terrain system as being 256x256. Any queries to sizes will tell the user the size based upon heightmap calculations, so it's slightly inaccurate. I thought this was a trivial trade-off, though.

Harold in Italy
    I haven't posted any updates for a long time, so I decided to post an entry tonight.

    I went to hear UNT's orchestra concert tonight. They started with Allegretto movement of Beethoven Symphony No.7 (devoted to a former faculty who passed away recently), then did Strauss' Don Juan, and then Berlioz's Harold in Italy with Susan Dubois playing the viola solo. Naturally, Susan sounded fantastic. She has a great sound, and is really fun to listen to. She almost makes me like that piece!

    Sadly, I think nothing will ever change my mind on this piece. It has really wonderful moments in it that make me think, "Oh, wow.. this is really nice." But then it has other moments where I remember why I always thought this piece falls distinctly short of being "good". The prime example is in the second movement where horn and flute play single long notes back and forth at one another. I'm not going to bother to describe exactly how ridiculous it sounds here on Advogato, but take my word for it or go listen to a recording (either Tabea Zimmermann's or Pinchas Zukerman's, since they are both fantastic enough violists to almost pass this off as a decent work). The outer movements are not that bad, but the inner movements are very unsatisfying.

    For me, Berlioz is like the definitive mediocre composer. We know who the Great composers are, like Beethoven and Schubert and Brahms. But if you look at some of Berlioz's works, you realize they're all "pretty okay" pieces. And those are just the few that are actually heard. I can't help but notice how few of his works are ever performed at all. "Mediocre" might be overstating his value.

    ...I don't know how I always get off on these little rants. My intention here was to say that I went to the concert and that Susan sounded awesome. =)

    Bill is coming to Dallas tomorrow so we're going to gether together and he's going to crash over here for a couple nights. That's pretty cool. He's going to the ASTA convention that's over at SMU I think.
    Cameron is off in Singapore now for some fellowship thing from Peabody. Yi-Ping and Amy just did the same thing not too long ago, I think, and now Cameron is doing it. I think he's going to be there for like three weeks. That's pretty cool. And he gets some money as part of it, which is never a bad thing.
Mip terrain
    I've almost got the new mip terrain system finished for NeoEngine. We're going to try to get the 0.8.0 release out very soon (supposedly on March 15), so I've been trying to find time to work on this to get it totally done for release but I've been busy practicing and teaching. Maybe I'll manage to get it done on time. I hope so.
    I registered on Orkut not too long ago, when it first started up. But then I didn't really pay much attention to it after that. Lesley invited me onto Friendster the other day, so I joined that but it seems to be not quite as cool as Orkut so I sent her an invitation to join Orkut. Miguel, Sopwith, Cesar, Duncan, and a lot of other people I know from Gnome are on Orkut so I started my little friend network on there. And I found Daphne, so I added her to my friend list. I searched for her because for some reason I just thought I would find her there, and I was right. Anyone else who is on there, please feel free to connect me onto your friend networks there if you want. =)

    Orkut/Friendster are sort of weird, but sort of cool. Maybe it's just a neat little gimmicky fad thing right now, I don't know.

294 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!