Wednesday, 3 October 2012

I'm working with Quake 3 lighting and shaders!

This is the first project I've put serious work into in a long time (aside from playing League of Legends), and I must say, it's quite fun. I made a small map with less than 100 brushes and no seriously complex geometry to mess around with lighting. This originally started when I was looking up some random Quake-related stuff on Google, when I found a few gorgeous skyboxes that hipshot made. I don't know how old they are, but all they were were a series of groups of images, with no accompanying shaders. He said that anyone who wanted to use them ought know how to make their own shaders anyway, so I was determined to make my own shaders for these skyboxes.

After a little while, however, I ended up messing around with sock's industrial texture pack, and made a few shapes and set up a small area to test lightmaps and how Q3Map2 lights up the world. I have only one (technically two, if you count my second sunExt in my shader) source of light, so it's easy to tell what's right and what's wrong with the shadows being created, and it turns out that quite a bit is wrong with them, that I am trying to fix.

First off, they look like shit by default. I had read something on Smokin' Guns a while ago about hi-res external lightmaps, but I was more of a noob back then than I am now, and it made absolutely no sense to me. A couple days ago, it still didn't make much sense, but as I followed the steps and ran into my own troubles, it all began to clear up, and I found a more or less complete understanding of at least what the author was trying to teach (HERE is the post, btw). I began to get proper understanding, and with that, new ideas. I thought I could make some seriously ridiculous 1024^2 lightmaps, but that ultimately failed as my system has only a measly 2Gb of RAM (ugh). I also couldn't do 512, but 256 was still far superior to 128, and was more than sufficient for my needs, as GtkRadiant can only export lightmaps of a limited size anyway, so all I would be doing is wasting graphics memory on blank spaces, because 4/5 of the created lightmaps would go unused. However, for a lot of basic purposes, 256 lightmaps are FAR superior to 128 lightmaps, and will fix a lot of problems with pixely shadows, provided you also use proper filters (-super, -bounce, etc.). So this was one thing I learned how to fix.

There is another problem that came up, however, that I really can't figure out what to do with, and that is, simply put, dirty lightmaps. What happens with low resolution lightmaps is all the ugliness generated by the 15-year-old system is masked, because there simply aren't enough pixels to display all the crap. And 15 years ago, this was perfectly fine. But if I want to make a map with a 256 or 512 lightmap, a lot of jagged edges and random lines appear on the lightmap, where it should just be flat light. I tried a few ways of fixing this, all the way from insane amounts of supersampling to manually fixing it, but none were really efficient or workable. I'm still trying to fix it, though I have a few ideas as I write this. This was the second problem that came up, and has yet to be resolved.

The third idea I had was that I could finally make toggle lights. I'm fairly certain it's been done before, and since I am by no means the most creative or technically savvy mapper, there should be no reason that it hasn't been done before. But I've been waiting to find a way to do it for some time now, and this is finally it. Since external (the only way to get 256 or higher lightmaps is by using shaders, because Q3Map2 doesn't work properly if you try to use a higher lightmap size with -lightmapsize; this was added for Wolfenstein and ET. One of many advantages of using shaders, however, is that there are a lot of fun things you can do with shaders, starting with toggling them. You can press a button and change x shader to y shader. If you're using shader lightmaps, then you can switch x light to y light, and even to z light if you want to, though I'm not sure of the engine limitations for this. I still haven't worked with toggle shaders, so there will probably be a lot of issues that I need to fix, but I know for a fact that this would work. I could make it so that you flip a switch and a light turns on, or I could even make the light flicker on using a func_random (not sure if this is actually possible, though; will need to play with it). I can couple it up with triggered sounds to make lighting and thunder, and light up an otherwise dark room for a second or two. Anyway, this is what I'm going to be working on next, and is the third idea I had and the third thing I learned.

I really can't think of much else, and if anyone got this far, then good job. It's been a long time since I've made a blog post, as is the norm, and I like to write a lot, especially when I'm tired (I'm very much tired; it's 5:30 in the morning and I had a long day). I might make some amazing discoveries meddling with the Quake 3 engine, and if I do, I'll definitely write them here, because even if nobody reads it, it's good to put these things into words, and is also a good way to store it for later comparison and reviewing.

Friday, 6 July 2012

I got a new monitor yesterday

I've been using my shitty TV as a monitor for the past few weeks, and it really hurts my eyes (not to mention that it's really hard to read on that thing). I decided to check craigslist to see if there were any cheap monitors for sale in my area. To my great surprise, there was one for $25 less than half an hour away! The only problem was that it was a 30kg(!!!!) CRT, and there was no way in Hell I was carrying that thing home. The seller was really cool and offered to deliver it to me for an extra $5. Of course I said yes. I got the monitor, gave the guy his money, and brought it to my room, only to find that it took up half my desk. There was just barely enough room for my keyboard in front of it, but then my face would be inches from the screen.

Anyway, I set it all up, and am using my keyboard Russian-style now, with my mouse on a little cupboard that I put on-end. It's a surprisingly workable setup, though anyone who sees it would shit themselves because it looks so silly (my computer is just a motherboard, PSU, and HDD sitting bare on my desk). I also had to run an ethernet cable up the stairs, because I don't want to go busting walls to route it that way just yet. Oh, also, my chair is a homemade lawn chair that's at least 8 years old. It's really cool.

On somewhat of a whim, I also ended up buying a webcam and a cheap headset ($20 and $12 respectively). I was going to just buy a mousepad, but this stuff is a lot more practical right about now.

HERE are the specs, and below are a couple pictures of my desk, just because. (On another note, I really want to work on Wolfcam some more; specifically, updating my config. At the same time, though, I want to wait and see if brugal will finally clean up all the cvars and shit, because if he does, I would have just wasted a bunch of time adding cvars only to delete them next update)

Friday, 29 June 2012

I did this thing with KOS's cpm22 for nzr0

He was trying to figure out how to make a "standalone" cpm22-kos_fixed or whatever, but was having trouble because of all the shaders and stuff, so I offered to just do everything for him. Took me less than 10 minutes, and works perfectly I guess. HERE's a download link.

I'll be working on the other two maps in a couple days when I get my computer back, as this one takes way too long to load the maps on, and I have nothing to modify targas with. It's just a really bad computer overall (really bad is quite the understatement).

Saturday, 16 June 2012

My blog is bored, and so am I

For the past month I haven't had a computer, and have been relying solely on my iPod. Needless to say, iPods aren't the most reliable source of internet whatnots. I have a crappy computer that I built out of spares and threw in a drawer. It's a piece of crap, but it's still miles ahead of my iPod in terms of useability, though it's actually worse on the hardware side, albeit slightly.

Anyway, nothing really new is happening. When I get my computer back, I might do an Infinity Engine marathon (if I can get enough money to upgrade my computer so I can actually stream decently). This includes Baldur's Gate, Baldur's Gate 2, Icewind Dale, Icewind Dale 2, Neverwinter Nights, Neverwinter Nights 2, and Planescape: Torment. I've heard only bad things about Neverwinter Nights, so I might skip it if I do this. Baldur's Gate should only take about 2 days, and BG2 would most likely take a week or so. I've never played IWD or NWN, and I've not played BG2 for more than a couple hours, so the only one of these I really have experience with is Baldur's Gate. If this happens, it'll be fun.

I wanted to share a song here, but it turns out it's one of the few that I haven't uploaded to MediaFire. Instead, here's a couple pictures of my computer:

Thursday, 19 April 2012

Tuesday, 10 April 2012

Oh right, I have a blog!

I've been too addicted to League of Legends recently that I completely forgot about almost everything else. Brugal is still being... whatever the word to describe how he's handling 8.6, and mccormic is a little bitch 'cause he didn't let me beta-test his movie and then it sucked. If I had a less shitty harddrive I would record some League of Legends shit, but until then I guess I might do some random Q3 clips to test new Wolfcam features and all that. With the next QL update, if the maps are any good, I might think about converting them and playing on them a little bit. That should be fun times. This is pretty much everything that's been happening so I'm going to end this post with this period here: .

Friday, 23 March 2012

Wolfcam

There's a new version in constant development. We're up to test21, with a lot of bugfixes as well as Q3 (and its good mods) support. There are still some tweaks to the Q3 support to be made, as well as some tweaky shit, but I hope it'll be done soon. Of course, brugal is the only one actually working on it; I just report bugs and features and all that.

League of Legends is fun shit, still. Wasted a bunch of IP on Swain, but he's not as good as I had remembered :(

Saturday, 10 March 2012

Stuff and things

Video editing sucks, so I give up on it until I feel like doing it again, which won't be for a while.

I've been playing a lot of League of Legends, as OP Ashe or Cho'Gath, and it's fun stuff. Taking lessons and learning how shit works. I'm also starting Tribes: Ascend and waiting for Borderlands 2 so I can play with my asshole friends who don't want to play anything I want to play.

I need Starcraft 2 pretty badly. Been wanting to play that ever since it was announced many years ago, and haven't touched it once. It's not as good as Brood War; of that I have no doubt, but I'll be able to play with my friends so it'll be worth it. It's also one of the few active games that I want to play these days.

Anyway, my life is boring and suck as usual, but HERE's an awesome picture!