--- Log opened Sat Oct 01 00:00:39 2011 |
00:20 | | Derakon[AFK] is now known as Derakon |
00:43 | | You're now known as TheWatcher[T-2] |
00:45 | | Attilla [Some.Dude@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
00:46 | | You're now known as TheWatcher[zZzZ] |
01:09 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
01:11 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Connection reset by peer] |
01:12 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
01:27 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
01:28 | | Syloqs_AFH is now known as Syloqs-AFH |
01:28 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
01:41 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
02:01 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code |
03:03 | | Kindamoody[zZz] is now known as Kindamoody |
03:14 | < Janus> | Ah, the change has been finished. It feels so good to be working with 1/4th the complexity (and 1/3rd the memory) |
03:16 | < Janus> | Now, it's just 4 bytes. One for type, one for misc data, one for light, and one for the 2x2 voxels. And the great part, is that the 'data' one can be used on almost every type. |
03:22 | < Janus> | For air and other transparent things, it carries hue/halflife information on top of the light intensity. And light is calculated as a fill/decay thing, which is constantly fed from neighboring blocks. This should make clouds that cast shadows possible |
03:23 | < Vornicus> | WARNING |
03:23 | < Vornicus> | Updating lighting anywhere near that often is going to be your doom. |
03:30 | < Janus> | ... oooooor, or! Instead of THAT. ... um, uh. |
03:32 | | * Janus ain't givin' up on the flickering light, coloured light. Just needs to think of a non-dumb way of doing it |
03:34 | < Janus> | Air is really the only conduit for light, and well... transparent blocks like ice or glass. I know Air would not need the remaining 3 bytes. Logically, I could tie those to x/y coordinates of nearby lights, up to three, and then simply reference the values from that |
03:35 | <@ToxicFrog> | Stupid question: isn't the answer "hand the world geometry and light sources to the video card and tell it to fix things"? |
03:36 | < Janus> | OpenGL can only handle 8 light sources per fragment, and I read it gets all types of slow when you go that far. May as well do it myself since I need to know the light intensity for growing things |
03:44 | < Janus> | I'm surprised this stuff is so... computationally expensive though. I wonder how it manages to run at all in Java. |
03:46 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
03:46 | < Vornicus> | Minecraft does no lighting object |
03:46 | < Vornicus> | s. |
03:46 | < Vornicus> | It turns that off and uses its own system to apply lighting because it is 1. complicated and 2. not the thing that Notch wants. |
03:48 | <@ToxicFrog> | Minecraft handles it by having a very simple lighting model and recalculating lighting only when world geometry or light sources change. |
03:55 | < gnolam> | Janus: the dirty secret is that nobody actually uses the built-in lighting anymore. |
03:56 | < gnolam> | So an arbitrary vertex lighting limit does not matter: you're doing the lighting yourself in your shaders anyway. |
03:57 | < Janus> | I can't blame them, aha. OpenGL lights don't seem all that impressive to begin with |
03:58 | < Janus> | Not that I'm having much luck coming up with one that's better of course |
03:59 | < gnolam> | Then it's just a matter of how many uniforms you are able to fit in - and even lowly 2.1 guarantees 512. |
03:59 | < Janus> | Uniforms? |
04:00 | < gnolam> | "Values constant across vertices and fragments", pretty much. |
04:00 | < Janus> | Oh! |
04:00 | < gnolam> | So using the "position + IsDirectional" standard that the standard model uses, that equates to 512/4 = 128 lights. |
04:01 | < gnolam> | (But realistically, you're going to use up more uniforms for other stuff, and only focus on lights that actually matter, so...) |
04:02 | | * Janus has more opengl reading to do it seems, d'oh |
04:03 | < gnolam> | Do start on shaders as soon as you can. They're surprisingly easy, and they're how you actually do stuff in OpenGL nowadays. :) |
04:09 | < Janus> | Aye aye! |
04:09 | < Vornicus> | They're how you actually, you know |
04:09 | < Vornicus> | do anything in any graphics these days. |
04:10 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
04:13 | < Janus> | Are they specific to any version..? I've been going by a compatability list I OR'd together from my friend's computers, which has been limiting me 2.0 |
04:16 | < Janus> | ah, there it is, glCreateShader(). I think that's it. That should be okay to use |
04:40 | <@ToxicFrog> | :wtc: |
04:40 | <@ToxicFrog> | .terraria: 150MB |
04:40 | <@ToxicFrog> | bzip2'd: 4.3MB |
04:44 | < Vornicus> | :wtc: |
04:55 | < Alek> | wtf |
04:57 | | * Vornicus tries to figure out what on earth is going on there |
04:59 | <@ToxicFrog> | $5 says it's a direct tile dump of the world with object table appended. |
04:59 | < Janus> | I have 1px to block map.pngs that are bigger than that |
05:00 | <@ToxicFrog> | Actually, at 4 bytes per tile, that's about right, although I have to wonder why in god's name a tile would be four bytes. |
05:02 | < Janus> | Maybe 2 of them belong to the backtile. At least... I hope |
05:02 | <@ToxicFrog> | Oh, that would make sense. |
05:03 | <@ToxicFrog> | 2 bytes for foreground, 2 bytes for background, + some extra data for non-tile objects and per-world flags, and the sizes work out pretty much perfectly. |
05:04 | <@ToxicFrog> | That said, I have a hard time believing that XNA doesn't have some libz-equivalent available. |
05:09 | < Janus> | The PC version's saves for a large map are only 93mb. |
05:09 | <@ToxicFrog> | Medium worlds are ~50MB and small are ~20MB. |
05:10 | < Janus> | ... though it has two files, one as a backup for some reason, so it's actually 180mb-ish, d'oh |
05:10 | <@ToxicFrog> | (the 150MB figure quoted is for a complete save directory, with multiple worlds of various sizes and character files) |
05:11 | < Janus> | Oooh. That'd explain why mine's 500 gb then. |
05:11 | < Janus> | ... 0.5 gb |
05:14 | <@ToxicFrog> | Yeah, if this holds, you could bzip2 that down to ~15MB. |
05:14 | <@ToxicFrog> | Probably less due to structural overlap between worlds. |
05:24 | < Janus> | Glad I'm using zlib for that stuff, or this'd get messy fast, aha |
05:24 | | kwsn [kwsn@Nightstar-635d16fc.org] has quit [Ping timeout: 121 seconds] |
05:33 | | kwsn [kwsn@Nightstar-635d16fc.org] has joined #code |
05:41 | < Janus> | Okay! I think I got this lighting thing figured out now! |
05:42 | < Vornicus> | Tell us, o codesculptor |
05:44 | < Janus> | For air blocks, 3 bytes are dedicated to lighting, and for transparent ones, 2 bytes. The first byte contains 4 bits for hue (31 colours+gray), 2 for lightness(4 levels), and 2 bits for flicker frequency. The flicker is a tied to the time this way, so there's no constant updating needed. |
05:45 | < Vornicus> | Um |
05:45 | < Vornicus> | 4 bits is 16 |
05:46 | < Janus> | ... oh. Enough colours for me! |
05:46 | < Vornicus> | Note: you will want to avoid strong flicker |
05:47 | < Janus> | I'm thinking it should only fluctuate one level of intensity, probably less. |
05:48 | < Janus> | Just enough to give the subtle hint anyway |
05:49 | < Janus> | Then moving to the second byte, 4 bits determine intensity (16) levels, and the second 4 determine how much of that intensity is contibuted by the ambient sky lighting |
05:54 | < Janus> | And finally, the last byte which only applies to air. The first 4 determine fog, and the last 4 determine specular dropoff rate, between 0.25 to 1. Which should let me put in long range lights like a lighthouse or a spotlight would have. |
05:55 | < Janus> | The dropoff only applies to the first 6 'spokes' that come out of the light source, so it allows it to have a direction, so to speak |
05:59 | < Janus> | ... I think that's what a specular light is anyway, it sounds like a thing that would be |
06:01 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
06:02 | < Janus> | Though... I wonder if I should just make fog it's own block and save those 4 bytes for something more unnecessary. Like the level of radeon gas in the air |
06:06 | < Tamber> | XD |
06:07 | < Vornicus> | har |
06:21 | < Janus> | Thanks for the help by the way! Hopefully I can get all this added and show you tomorrow! |
06:42 | | RichardBarrell_m [richardbarr@Nightstar-f68eb197.cable.virginmedia.com] has joined #code |
06:56 | | Derakon is now known as Derakon[AFK] |
07:07 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has joined #code |
07:37 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Client exited] |
07:41 | | Vash [Vash@Nightstar-f03c5637.sd.cox.net] has joined #code |
07:43 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has quit [Ping timeout: 121 seconds] |
07:45 | | Vornicus is now known as Vornicus-Latens |
08:21 | | Attilla [Some.Dude@Nightstar-f29f718d.cable.virginmedia.com] has joined #code |
08:27 | | Janus [NSwebIRC@Nightstar-b1ac186a.res.rr.com] has quit [[NS] Quit: Page closed] |
08:28 | | Vash [Vash@Nightstar-f03c5637.sd.cox.net] has quit [[NS] Quit: I <3Lovecraft<3 Vorn!] |
08:49 | | You're now known as TheWatcher |
08:55 | | RichardBarrell_m [richardbarr@Nightstar-f68eb197.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
09:27 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
10:03 | | RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
10:33 | | Kindamoody is now known as Kindamoody|out |
10:49 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [[NS] Quit: If the world didn't suck, we'd all fall off.] |
11:38 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
13:32 | | Kindamoody|out is now known as Kindamoody |
13:52 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has joined #code |
14:25 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has quit [Ping timeout: 121 seconds] |
14:25 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has joined #code |
14:39 | | Kindamoody is now known as Kindamoody|out |
14:47 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has quit [Ping timeout: 121 seconds] |
14:48 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has joined #code |
15:02 | | McMartin [mcmartin@Nightstar-656a00f7.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
15:10 | | McMartin [mcmartin@Nightstar-e2dd8f35.pltn13.sbcglobal.net] has joined #code |
15:12 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has quit [Ping timeout: 121 seconds] |
15:12 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has joined #code |
15:23 | | SmithKurosaki [smith@Nightstar-e26015c4.home1.cgocable.net] has quit [Client closed the connection] |
16:46 | | Derakon[AFK] is now known as Derakon |
16:46 | | Kindamoody|out is now known as Kindamoody |
17:25 | | Vornicus-Latens is now known as Vornicus |
17:35 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code |
19:06 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Client closed the connection] |
19:07 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
19:17 | | kwsn is now known as kwsn|GO_BREWERS |
19:19 | | celticminstrel [celticminstre@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
20:16 | | Kindamoody is now known as Kindamoody[zZz] |
21:17 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
21:21 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
21:54 | | kwsn|GO_BREWERS is now known as kwsn |
22:22 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
22:51 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Client closed the connection] |
22:51 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Client exited] |
22:51 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
--- Log closed Sun Oct 02 00:00:56 2011 |