code logs -> 2011 -> Sat, 01 Oct 2011< code.20110930.log - code.20111002.log >
--- 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
code logs -> 2011 -> Sat, 01 Oct 2011< code.20110930.log - code.20111002.log >

[ Latest log file ]