#low@irc.freenode.net logs for 3 Nov 2003 (GMT)

Archive Today Yesterday Tomorrow
LoW homepage

[00:17:18] <Coren_> I can now look around my qbsp'ed britain.
[00:50:17] <servus> Read this. I believe it covers all cases
[00:50:53] <Coren_> Just tried it. The lack of division make mine faster.
[00:51:10] <servus> Lack of division?
[00:51:18] <Coren_> I do the test with no divides.
[00:51:23] <servus> I thought yours had dots and squares.
[00:51:35] <Coren_> Nope. A couple of subs and a cross prodict
[00:52:54] <servus> By the way, vimboy, VC++ has a full regular expression in the editor evaluator too. *grin*
[00:53:10] <Coren_> So?
[00:53:14] <servus> regular expression evaluator*
[00:53:18] <Coren_> vim has all of /perl/ built in.
[00:53:33] <servus> Perl is for menonites!
[00:54:03] <Coren_> Mebbe, but it supports regexp. It's just limited to. :-)
[00:54:19] <Coren_> s/just/just not/
[00:55:01] <servus> This is a silly argument anyways, because in programming like this, you don't exactly write 100 pages of code a day.
[00:58:15] <servus> By the way, do you plan on supporting some form of dynamic world destruction/construction? That voxlap demo I showed you was pretty exciting!
[00:58:36] <servus> I guess you wouldn't, seeing as how you're trying to recreate a game in one way or another... but it's neat. :-)
[00:58:48] <Coren_> Well, I have little use for it in LoW, but the engine allows it.
[00:59:13] <servus> Did you actually check out the voxlap demo I posted here?
[00:59:19] <Coren_> Although it'd be a bit complex because you have to preserve the predicate that all sectors are convex.
[00:59:26] <Coren_> Yes, I did. It's cute.
[01:03:34] <Coren_> Note to self: falling off the end of a function mean to return bool makes figuring out what goes wrong hard.
[01:13:54] <Coren_> Hey, cute, with my new code I don't even /need/ the depth buffer anymore. :-)
[01:14:18] <Coren_> *zero* overdraw.
[01:14:37] <servus> That seems rather unbelievable.
[01:14:53] <servus> You section each plane to fit the camera?
[01:15:04] <servus> Have you tried putting a complex object in the middle of a room?
[01:16:09] <Coren_> It's a consequence of how I draw to begin with. Remember I have only strictly concave spaces, and I partition them with a concave view volume (or lighting volume (or both)) then render the clipped surfaces.
[01:16:32] <servus> Sounds like an awful lot of computation each frame./
[01:17:02] <Coren_> Turns out it's rather inexpensive; clipping a polygon against planes is fast and easy-- and I more than make up for it by the greatly reduced fill rate.
[01:17:25] <servus> It sounds like you're heading away from 3D Acceleration altogether.:)
[01:17:40] <servus> I like to make my videocard sweat.
[01:17:48] <Coren_> Especially since I do multiple blended passes, with multiple texture units (where there are more than one light) so that every fragment never drawn is a big gain.
[01:19:07] * servus wonders how many TUs are GF-FX has... GF4-TI has 4
[01:19:19] <Coren_> 4
[01:21:13] <servus> Oooh, my per-pixel attenuation is beautiful now! 1 TU used, no textures used at all! =D
[01:22:17] <Coren_> http://tab.ctrl-alt-del.ca/~marc/foo2.png
[01:22:21] <servus>
[01:22:29] <servus> You have a history of 404s.
[01:22:51] <Coren_> Copy not finished. :-) Darn the silly crippled downstream of DSL. :-)
[01:23:04] <servus> Otay.
[01:23:11] <servus> Don't you mean upstream though?
[01:23:38] <Coren_> Done now. And up/down depends on which side of the link you are. I'm thinking from my server's side. :-)
[01:23:53] <servus> The server is using DSL?
[01:23:56] <Coren_> That's distance attenuation, but I don't see incidence effect?
[01:24:02] <Coren_> No, but *I* am.
[01:24:14] <servus>
[01:24:25] <servus> I'm optimizing it...
[01:24:32] <Coren_> Copy complete
[01:25:04] <servus> Right now it uses only 1 TU, but I haven't added bumpmapping in yet... I hope I can maintain the 1 TU.
[01:25:07] <Coren_> That's the "secret" room behind the Avatar's.
[01:25:17] <servus> Still 404'ing... *waits*
[01:25:24] <Coren_> (Viewed from the avatar's)
[01:25:28] <servus> Why don't you host a server?
[01:25:55] <Coren_> No, it's working. Perhaps 'reload'? :-)
[01:25:58] <servus> 1.2MB! Egads, man! Zounds!
[01:26:05] <servus> I was reloading... *Kicks browser*
[01:26:13] <servus> Looks neato!
[01:26:27] <servus> The only thing that's holding it back is the 1992 geometry:)
[01:26:32] <Coren_> What do you mean "why don't I host a server?' You mean home? Why would I do that over DSL when I have a bandwidth-unlimited server in colo? :-)
[01:27:37] <servus> I have an idea.
[01:27:37] <Coren_> servus: Well, I can load arbitary Q2 BSPs, now, so there is not much to limit how the geometry can be played with.
[01:27:53] <servus> I'll remake my test world into a .map and send it to you, we can compare. *Grin*
[01:28:17] * Coren_ chuckles. Fun. I only have just the one texture, though.
[01:28:34] <Coren_> I'm not very good at making normal maps; that brick texture took me 2-3 hours to do 'right'.
[01:28:50] <servus> Errrr
[01:28:58] <servus> NVidia has a Photoshop plugin that does a wonderful job:)
[01:29:30] <servus> Strange, I thought worldcraft could open dxf's.
[01:31:37] <Coren_> Well, it makes a wonderful job if you have a bumpmap to start with. THAT's the hard part. :-)
[01:31:45] <-- Coren_ has left IRC (Read error: 54 (Connection reset by peer))
[01:32:16] <servus> Bumpmap to begin with? Those aren't too bad... Just convert to grayscale, crank up the contrast, and run the filter
[01:32:31] --> Coren_ has joined #low
[01:32:31] --- ChanServ gives channel operator status to Coren_
[01:33:16] <Coren_> Erm. Other note to self. Close and Minimize is *not* the same.
[01:59:17] <Coren_> Woot! The new code with no overdraw made things about 50% again as fast. :-)
[02:03:00] <servus> What about fragments? You can't possibly deal with those! You'll get leaks?
[02:03:15] * Coren_ doesn't understand the question.
[02:04:59] <servus> There is a small object in the foreground that occludes a large wall in the background. What happens if your program clips the back wall, but some of the pixels on the edge of the foreground object are not drawn because they don't take up enough of the pixel (a dropped fragment)
[02:05:18] <servus> You aren't noticing any artifacts? Use pure white textures to see?
[02:06:16] <Coren_> Ah. Can't happen because of the GL vertex invarient. Basically, GL garantees that if you draw two polygons who share an edge (with identical vertices) then (a) no fragment will be painted twice and (b) all fragments will be painted.
[02:07:51] <Coren_> And the way I do things garantees no t-junctions.
[02:09:03] <Coren_> There is the potential that light that shines in a sector from two adjacent (but distinct) portals would not-quite align on a surface, but because of the way I clip the polygons I coerce the vertices together.
[02:09:05] <servus> That auspice refers to the orthographic homogenous clipspace, not the 3D world though... I guess you'll have to wait and see if you get math errors on lower end hardware. :)
[02:09:35] <Coren_> I doubt I'd get significant math errors on hardware recent enough to support _dot3 to begin with.
[02:10:12] <servus> The GF FX works with 8 bit bytes as the native format, you know. *ducks and hides*
[02:10:24] <Coren_> I know that drawing my surfaces red and clearing to green shows no green pixels.
[02:11:21] <servus> I'm just teasing you, I don't even know what a pixel is.
[02:11:59] <Coren_> And double painting lights would sohw very visible (and obvious) overbright seams, and I haven't found one of those yet.
[02:12:11] <servus> Alright.
[02:17:11] <servus> Ugh, I wonder if I have to bind a new vp when I want to use bumpmaps... Most likely. >.<
[02:22:16] <servus> Ugh, I just don't think I can put bumpmapping and per-pixel attenuation into a single TU without a fragment program! Oh well... 2 TU's isn't bad.
[02:23:39] <Coren_> 3 if you want colored lights too. But I could have told you that already. :-)
[02:24:02] <servus> Nah.
[02:24:38] <servus> I have coloured lights with per-pixel-attenuation with 1 TU.
[02:24:47] <servus> How about dem apples? *grin*
[02:25:49] <Coren_> http://tab.ctrl-alt-del.ca/~marc/foo2.png
[02:26:05] <servus> How many TUs?
[02:26:16] <Coren_> 3
[02:27:26] <servus> 1 TU.
[02:27:47] <Coren_> I still don't see no bumps. :-)
[02:27:50] <servus> Drastic optimizations are still needed, but I know how to optimize it, and I know it's possible.
[02:28:01] <servus> So? I expect to use 2 TUs to add bumps.
[02:28:02] <Coren_> Your _dot3 will flatten the colorspace.
[02:28:24] <servus> I'll figure it out.
[02:28:44] * Coren_ chuckles.
[02:29:02] <Coren_> Yep, you will. Figure out you need 3. :-)
[02:29:11] <servus> Nah uh!
[02:29:22] <servus> If I can do per-pixel attenuation with a single texture unit... Mwuahahahah
[02:30:25] <servus> Bbl
[02:31:06] <Coren_> I do distance and incident angle attenuation with one TU; you need one for mapping the normal map, then one for the color.
[02:31:21] <Coren_> After all, your normal map gotta come from /somewhere/
[02:31:30] <-- Coren_ has left IRC ("using sirc version 2.211+KSIRC/1.2.4")
[23:27:08] --> Coren_ has joined #low
[23:27:08] --- ChanServ gives channel operator status to Coren_