Older blog entries for bratsche (starting at number 297)

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
    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
    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.
Orkut
    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.

New Advogato server
    This is great having Advogato moved to the new server. It's much more responsive, I think.
Quartet concert
    I played in a piano quartet concert on Wednesday with Dr. Hunt on piano, Amirosh (cello), and Oksana (violin). We played Mozart g minor, Beethoven E-flat major, and Mendelssohn c minor Op.1. It was pretty cool. We're going to try to do something again sometime, but I'm not sure when. We were thinking of doing a string trio and a piano quartet next time, or maybe a string quartet if we can find another violinist who is interested. Maybe Amela would do it.
OpenGL 1.5
    I'm really excited about this. I'm using some beta drivers that I got from NVIDIA (only Windows right now, but I can't complain too much). The beta driver (56.56) provides OpenGL 1.5, but they turned off all the GLSL extensions by default. There's a registry hack to enable entry points into those extensions, and of course I had to try that out!

    It's really cool stuff. I made a couple simple tests that worked beautifully, and now I'm beginning on some GLSL support for NeoEngine.

Snow
    It snowed here this morning. About three or four inches, which is sort of a lot to get in one night around here. Of course, most of it has melted by now. But it was still pretty cool.
Houston
    I went down to Houston a couple weeks ago for an audition and saw Bill. He let me stay over at his place while I was there. Rice seemed really nice. Bill is getting ready for auditions in Europe, which is really cool.
Occlusion Queries
    I made a simple interface in NeoEngine for doing asynchronous hardware occlusion queries. I'll bang out a more thorough test program soon, then add DirectX support before I commit it. Right now I've only done the OpenGL implementation of it using ARB_occlusion_query and NV_occlusion_query extensions. There's also an older HP_occlusion_query extension, but it doesn't provide as much information so I don't want to support it at all.
Duo Renard
    Last weekend there was a small recital by Duo Renard, which is Mark and Ute Miller's duo. They each played a solo piece (she played some really nice viola piece by Joachim that I did not know, and he played a Prokofiev violin sonata), then they finished with Bruch Double Concerto. It was pretty cool. I had never heard it before with violin (I'm used to it being viola and clarinet, which is how I played it). It was very cool.

    Then I played in East Texas Symphony last week and they performed it with the orchestra. It was really nice. We also did Mahler Symphony No.1 and some newish piece that I found uninteresting.

New hardware
    The MSI motherboard and my FX5200 video card got fried recently, which sucks pretty bad, but fortunately I can get the motherboard replaced for no more than the cost of shipping the old one back. The video card wasn't on any sort of warranty, so I just had to buy a new one. I was needing to get a new one anyway at some point, because FX5200 is really slow.. I just wasn't expecting to have to get that upgrade so soon. I sort of figured this one would last me into the NV40 era. So, the new one should arrive today. It's an FX5900, which will be insanely fast, plus have a few new features over the FX5200 that will be cool to work with. The other cool thing is that BFG, the maker of this video card, has a true lifetime warranty on this board, so if anything happens to it then I can get it fixed or replaced.
Talking to people
    It's really cool, I've been talking to several of my friends from Peabody recently. I talked to Kasia not long ago, and then Yi-Ping the other day, and then Lesley called yesterday. It's so cool. I've been meaning to give Bill a call sometime too, I just haven't yet.
2.6.1-rc2
    I updated to kernel 2.6.1-rc2 today in order to fix the NVIDIA AGP bug, which it did.v I also got ALSA setup to use my on-board sound for this MSI K8T Neo mobo, but the driver seems to be a little buggy still at this point so I get 'clicking' sounds (sort of like very, very slow static).
Max Payne 2
    Cameron has been bugging me to play it (and seemed almost outraged one day when I told him that I had borrowed it from David like a couple weeks ago and still hadn't installed it), so I finally installed it the other day and started to play it.

    It's nothing really new or revolutionary in this game. Usually when I say something like "basically more of the same" it is not meant in a good way, but I'd basically have to say that about this game and mean it in a good way. If that makes any sense. I thought the original Max Payne was really fantastic and was one of the best games I had played at that time, and the sequel basically just takes a good thing and improves slightly on it. There was really no reason for them to try to do anything amazingly new in this game, and I'm glad that they basically preserved the gameplay.

Happy New Year
    Happy New Year, everyone. I hope 2004 is good for everyone.
Gentoo
    I finally got Gentoo installed and running. It's a lot of trouble, but now that's it's running I like it a lot.
NeoEngine 64-bit
    I just commmitted support for NeoEngine to run on Linux in 64-bit mode on AMD64 (Opteron/Athlon64) systems. Woo!

288 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!