--- Log opened Mon May 28 00:00:35 2012 |
00:12 | <&Derakon> | Rearranged and resized the interior boxes: http://derakon.dyndns.org/~chriswei/temp/powerbox3.png |
00:13 | <&Derakon> | House trays now match height with the resource tray, which has been expanded. |
00:15 | <&Derakon> | Oh, excellent, I do have a 1/4" straight bit for my router. Saves me from having to figure out how to cut the slots. |
00:16 | < gnolam> | Alek: it is possibly the most German German-style board game ever. |
00:16 | < gnolam> | It's almost impossible to play it and not start humming a Kraftwerk song. ;) |
00:17 | <&Derakon> | Main issue with this design is that I don't have a good place for the money, and it pretty much needs interior walls to keep stuff from sliding around. |
00:33 | | You're now known as TheWatcher[T-2] |
00:35 | | You're now known as TheWatcher[zZzZ] |
00:59 | <@Alek> | gnolam: easy enough when you've never heard Kraftwerk. :P |
01:20 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
01:33 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
01:33 | | mode/#code [+o himi] by ChanServ |
01:38 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
01:40 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
01:40 | | mode/#code [+o himi] by ChanServ |
01:44 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
02:09 | | Kindamoody[zZz] is now known as Kindamoody |
02:12 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
02:12 | | mode/#code [+o himi] by ChanServ |
02:40 | | Attilla [Obsolete@Nightstar-f6f9b474.as43234.net] has quit [Ping timeout: 121 seconds] |
03:16 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code |
03:16 | | mode/#code [+o Vash] by ChanServ |
03:25 | | Kindamoody is now known as Kindamoody|coding |
04:47 | | Kindamoody|coding is now known as Kindamoody |
04:59 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
05:09 | | Kindamoody is now known as Kindamoody|afk |
05:36 | | Kindamoody|afk is now known as Kindamoody |
06:05 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
06:11 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code |
06:11 | | mode/#code [+o Vash] by ChanServ |
06:44 | | Derakon is now known as Derakon[AFK] |
06:45 | | Kindamoody is now known as Kindamoody|breakfast |
06:49 | < froztbyte> | Alek: I believe you may have |
06:50 | < froztbyte> | Kraftwerk finds its way into sneakily many places |
06:55 | <~Vornicus> | Kraftwerk: "Let's start a band!" "Sounds like fun. I'll bring the welding torch." |
06:56 | < froztbyte> | yeah, that sounds about right |
07:21 | | Kindamoody|breakfast is now known as Kindamoody |
07:26 | | ErikMesoy|sleep is now known as ErikMesoy |
08:03 | | Kindamoody is now known as Kindamoody|out |
08:20 | | * Vornicus crushes Euler 91 as well. Only 1 oom improvement, but still. Adding instead of counting = victory. |
08:33 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
09:00 | < froztbyte> | eh |
09:00 | < froztbyte> | stop making me feel bad about not doing euler problems in a while |
09:05 | | You're now known as TheWatcher |
09:07 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited] |
09:53 | | Attilla [Obsolete@Nightstar-99e308f6.as43234.net] has joined #code |
10:49 | < froztbyte> | http://www.ted.com/talks/ayah_bdeir_building_blocks_that_blink_beep_and_teach.ht ml |
10:55 | | * TheWatcher eyes that |
10:56 | <@TheWatcher> | S'neat and all, but... *shrug* maybe I just have Engineer Snobbery. |
10:59 | < froztbyte> | hehe |
10:59 | < froztbyte> | well, it could be a neat start |
11:00 | < froztbyte> | and catch with a wider net than before |
11:00 | <@TheWatcher> | This is true |
11:00 | < froztbyte> | hell, perhaps not, perhaps it just allows more people to understand this fuzzy "information" thing a bit better |
11:00 | < froztbyte> | which is also not a bad hting |
11:00 | < froztbyte> | thing* |
11:14 | <@TheWatcher> | Well, provided it's followed up on properly. |
11:24 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has quit [Ping timeout: 121 seconds] |
11:28 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has joined #code |
11:29 | | mode/#code [+o Alek] by ChanServ |
11:36 | < gnolam> | Meh. |
11:37 | < gnolam> | "We want to make every single interaction in the world into a ready-to-use brick." |
11:37 | < gnolam> | See, that's where her analogy with LEGO or regular bricks breaks down. |
11:38 | < gnolam> | They don't have to be pre-designed for a specific function. |
11:58 | < Tarinaky> | I've seen plenty of LEGO models that are "One piece is half the model". |
11:58 | < froztbyte> | yeah, especially in recent years |
11:59 | < froztbyte> | in fact, I think there was an article about it some time ago |
12:01 | < Tarinaky> | http://imgur.com/AE2IS |
12:01 | < froztbyte> | haha |
12:30 | < sshine> | I have a course in didactics where they warn against describing natural sciences using metaphors. dumbing something down will not make it more easily understood. it will simply create a gap between those who get it and those who think they get it because they get some analogy. |
12:32 | | Reiv [reiverta@5B433A.3CF6C7.2EA420.0DF97A] has joined #code |
12:32 | < sshine> | from the TED video: "Essentially, the concrete block had become the building block of our time." -- she doesn't even play on the pun that the concrete block is essentially the metaphor she uses? |
12:34 | < Tarinaky> | It's great for Science Fiction shows though. |
12:34 | < gnolam> | sshine: and then you have psychology, where mistaking the analogy for reality is SOP for much of the field.~ |
12:34 | < gnolam> | (See also: economics, where you mistake the model for reality.) |
12:35 | < sshine> | heh |
12:38 | <@TheWatcher> | (gnolam: I note Horngren's Observation applies, at least to the 'better' economists) |
12:39 | <@TheWatcher> | (should such things exist, which I doubt) |
12:40 | < ErikMesoy> | "The real world is a special case" ? |
12:40 | < froztbyte> | the real world is a spatial case |
12:44 | <@TheWatcher> | ErikMesoy: Yep. |
12:45 | < sshine> | ErikMesoy, are you Norwegian? |
12:45 | < ErikMesoy> | Yes |
13:06 | | Reiv [reiverta@5B433A.3CF6C7.2EA420.0DF97A] has quit [Ping timeout: 121 seconds] |
13:06 | | Reivles [reiverta@5B433A.F67240.D8393C.F71BA0] has joined #code |
13:31 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
13:48 | | maoranma [nbarr@Nightstar-fefda721.pools.spcsdns.net] has joined #code |
13:51 | | Noah [nbarr@Nightstar-971b3891.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
14:11 | < Tarinaky> | Akk. Halp. |
14:11 | < Tarinaky> | What do I do for a particular integral when I'm looking at a product of a polynomial and an exponential? |
14:12 | < Tarinaky> | 5x^2 e^2x - 2x^2 |
14:12 | < Tarinaky> | I know I can -add- solutions together. |
14:12 | < Tarinaky> | What do I do for this problem? |
14:18 | < celticminstrel> | I can't quite remember, but for products don't you normally do integration by parts? |
14:20 | < Tarinaky> | I'm doing ordinary differential equations. |
14:22 | < celticminstrel> | I can't seem to figure out why that's relevant. |
14:23 | < Tarinaky> | Because I'm not integrating anything. |
14:23 | < Tarinaky> | The problem isn't seperable. |
14:23 | < Tarinaky> | I'm trying to solve y'' + 2y' +2y = 5x^2 e^2x -2x^2 |
14:24 | < celticminstrel> | It doesn't need to be separable in order to integrate anything... ah, I see. |
14:26 | < celticminstrel> | Isn't that the case where you can solve =5x^2 e^2x and =-2x^2 separately and add the results, or something? And the method for that type of equation accounts for the exponential, as I recall. |
14:28 | < Tarinaky> | Yes. |
14:28 | < Tarinaky> | But I can't solve 5x^2 e^2x |
14:29 | < celticminstrel> | Either the "undetermined coefficients" method (not sure if that applies) or the "variation of parameters" method. |
14:29 | < Tarinaky> | Yes. But what trial function do I use? |
14:29 | < celticminstrel> | (I thought undetermined coefficients applied, but Wikipedia is vague about it...) |
14:29 | < Tarinaky> | >.> |
14:31 | < celticminstrel> | Trial function? |
14:31 | < Tarinaky> | The particular integral. |
14:31 | < Tarinaky> | The thing that -has- the undetermined coefficients |
14:35 | < celticminstrel> | It seems that for a product you take all possible combinations... for 5x^2 you'd need a linear combination of {x^2, x, 1}, and for e^2x you just need 2^2x, so you'd have (Ax^2 + Bx + C)e^2x. |
14:36 | < celticminstrel> | http://www.cliffsnotes.com/study_guide/The-Method-of-Undetermined-Coefficients.t opicArticleId-19736,articleId-19721.html#leduc3209c03-tbl-0001 |
14:40 | < Tarinaky> | Okay. |
14:40 | < Tarinaky> | I'll try that :/ |
15:06 | | Reivles [reiverta@5B433A.F67240.D8393C.F71BA0] has quit [Client closed the connection] |
15:44 | | maoranma is now known as Noah |
15:45 | < froztbyte> | so I'm checking out some of the other revision 2012 entries |
15:45 | < froztbyte> | http://www.youtube.com/watch?v=oV8otBM_MQU for the full run |
15:45 | < froztbyte> | http://www.youtube.com/watch?v=ztI8BKAWBtM is <3 |
15:46 | < froztbyte> | full run is 1h10m, but a few worth watching |
15:53 | | io|parents is now known as io|mad-town |
18:10 | | Kindamoody|out is now known as Kindamoody |
18:11 | | Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code |
18:11 | | mode/#code [+o Vash] by ChanServ |
18:40 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Client closed the connection] |
18:40 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
18:58 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code |
19:15 | | Kindamoody is now known as Kindamoody[zZz] |
19:27 | | Derakon[AFK] is now known as Derakon |
19:33 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has quit [Ping timeout: 121 seconds] |
19:41 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has joined #code |
19:41 | | mode/#code [+o Alek] by ChanServ |
19:47 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has quit [Ping timeout: 121 seconds] |
19:48 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has joined #code |
19:48 | | mode/#code [+o Alek] by ChanServ |
20:25 | < Rhamphoryncus> | hum. A quarter meter granularity for track placement would be sufficient when aligned to the map grid |
20:26 | < Rhamphoryncus> | But it'd be a highly visible granularity change when you switch to diagonal.. or not? hrm |
20:33 | < sshine> | what scientific methods are involved in creating simulations of physical phenomena? |
20:37 | < Rhamphoryncus> | lots? |
20:37 | < Rhamphoryncus> | Are you talking about approximations for entertainment purposes or more precise recreations to study the effects? |
20:43 | < Rhamphoryncus> | Heh, to put myself in perspective, if I were to model the entire earth at 0.25 meter resolution that'd be about 8 petabytes |
20:43 | < Rhamphoryncus> | That's a leeedle bit too much |
20:45 | < sshine> | well, I'm doing this assignment on didactics in which I shall analyse the scientific methods of biology, mathematics and computer science for their respective role in this learning period. |
20:45 | < sshine> | and my books don't really mention how to address simulation. it's sort of a hybrid of empirical and formal. |
20:45 | < sshine> | the biology experiment is hypothetico-deductive |
20:46 | < Rhamphoryncus> | hrm |
20:47 | < Rhamphoryncus> | I think they build on older, much simpler models of physical behavior |
20:48 | < Rhamphoryncus> | Model the elastic properties of one or two objects together, then expand that up to 10 objects, then for computers you're stretching into hundreds and millions |
20:49 | < Rhamphoryncus> | Although computers often involve taking a single physical object and modelling it as a collection of millions of distinct segments |
20:55 | < sshine> | yes |
20:56 | < sshine> | so what I am thinking is that the reliance on modelling says something definitive about the scientific method involved. |
20:58 | < sshine> | depending on the level of chaos and determinism, one could say that a simulation is really deductive, but one would most likely call it empirical. but I don't know what kind of empiricism this is. |
20:58 | < Rhamphoryncus> | Most or all science is modelling if you look at it the right way |
20:59 | < Rhamphoryncus> | You develop a theory that has specific predictions and you check if they come true |
20:59 | < sshine> | Rhamphoryncus, yes, but when you base your experiments in the real world, you can get answers on whether your model is satisfying. if you experiment *on* a model, some statements might be self-fulfilling. I don't know, maybe there isn't such a distinction as I've assumed. |
21:01 | < Rhamphoryncus> | The model often reveals subtle behaviour that's hard to see in the real world, but once you've explored it there you can often find a way to test it in the real world |
21:01 | < Rhamphoryncus> | Think about all the particle accelerator experiments |
21:02 | < Rhamphoryncus> | There's a whole collection of different models proposed for the higgs boson |
21:02 | < sshine> | so often what your simulator's model is, is something that we may take for granted as a model of the real world... e.g. natural forces, when what we really explore is perhaps the behaviour of complex molecules. |
21:04 | < sshine> | i.e., what we take for granted because a simulation depends on an assumption that its model is correct, may not at all be controversial when testing some hypothesis with the simulator. |
21:04 | | * Rhamphoryncus nods |
21:04 | < Rhamphoryncus> | That's really just part for simulations |
21:05 | < Rhamphoryncus> | They can be enormously complex but they're still nowhere near sufficient to thoroughly model the real world |
21:05 | < Rhamphoryncus> | par* |
21:06 | < sshine> | thanks a lot, Rhamphoryncus! |
21:06 | < Rhamphoryncus> | We've learned a great deal from weather simulations, and they involve some of the most expensive computer clusters in existence, but they still aren't that accurate |
21:06 | < Rhamphoryncus> | np |
21:06 | | * sshine proceeds with vacuum cleaning in an attempt at diplomacy. |
21:06 | < Rhamphoryncus> | Fun reading: http://www.top500.org/ |
21:06 | < sshine> | thanks. :) |
21:06 | < Rhamphoryncus> | Well, browsing anyway, for a few minutes |
21:09 | < gnolam> | sshine: you run verification experiments. |
21:19 | | Attilla [Obsolete@Nightstar-99e308f6.as43234.net] has quit [Ping timeout: 121 seconds] |
21:23 | | Attilla [Obsolete@Nightstar-99e308f6.as43234.net] has joined #code |
21:31 | < Rhamphoryncus> | Hrm, so either way my map size will be on the order of 100000x100000 tiles (if not a factor of 10 less in each dimension). So either I do a 500:1 scale or I limit map sizes to.. the size of edmonton |
21:32 | < Rhamphoryncus> | Oww, that perspective hurts ;) |
21:33 | < sshine> | Rhamphoryncus, why do you have such a big map? |
21:33 | < Rhamphoryncus> | sshine: It's a transport tycoon clone so I want a very large, detailed map |
21:34 | < sshine> | is it procedurally generated, or is it a projection of earth? |
21:34 | <~Vornicus> | Rham: or you can do adaptive LoD |
21:34 | < Rhamphoryncus> | Vornicus: sshine procedural, but it's possible for some of it to change over time |
21:35 | < Rhamphoryncus> | Vornicus: I'm not talking about rendering |
21:35 | <~Vornicus> | I mean even in the map storage. |
21:35 | < Rhamphoryncus> | If something is wilderness then leave it in a procedural generated mode? |
21:36 | < sshine> | Rhamphoryncus, but wouldn't it only be interesting to generate (or change) that which has been observed? |
21:36 | < Rhamphoryncus> | sshine: minecraft-like exploration? An interesting thought |
21:36 | < sshine> | Rhamphoryncus, and even if something has been left alone for a while, wouldn't it eventually change so much so that at least the details could be re-generated. |
21:36 | <~Vornicus> | Rham: yes. Minecraft for instance can (but doesn't, usually) generate but not store map segments. |
21:37 | < sshine> | Vornicus, what's adaptive LoD? |
21:37 | | * sshine RTFMs |
21:37 | <~Vornicus> | sshine: in this case it would mean "only fill in details where they're needed" |
21:37 | < Rhamphoryncus> | My starting assumption (of transport tycoon) is that the entire world is visible from the start. I will have to think about not doing that though |
21:37 | | io|mad-town is now known as io|GF |
21:37 | < Rhamphoryncus> | Vornicus: minecraft is extremely static. I was hoping to include some form of water flow, biomes, etc |
21:38 | < Rhamphoryncus> | I'm also thinking now that map granularity could be larger than track placement granularity |
21:38 | <~Vornicus> | Even if the entire world is visible from the start, you can make the large scale elements first and then the smaller scale elements. |
21:38 | <~Vornicus> | When you need them. |
21:39 | < Rhamphoryncus> | Vornicus: I'm hoping to do that anyway, but the problem is a map may start out at 20 megs and end up at 10 gigs. That's about the sane limit for a server IMO. If I change that to start at 200 megs and end at 100 gigs.. yeah, not so sane |
21:41 | <~Vornicus> | So for instance, you could store a "coarse" heightmap in healpix - you'd get large scale tiles about 6 km across, at 12 megabytes per byte of per-tile data, and that's at earth size. |
21:42 | < Rhamphoryncus> | The other thing in my head is the geometry of the map. Flat? Spherical? Cells with arbitrary mix (probably how I'd implement spherical)? |
21:42 | < sshine> | Rhamphoryncus, "visible" at what resolution? |
21:43 | < Rhamphoryncus> | hmm |
21:43 | < Rhamphoryncus> | sshine: good question :) |
21:43 | <~Vornicus> | Sim games are notorious for strange scale issues. |
21:43 | < sshine> | Rhamphoryncus, you could procedurally generate it at low resolution from the beginning, but only procedurally generate the details when people zoom in... I don't know, though, how it'd look and what really constitutes a detail. is that city-like or nature-like? |
21:43 | < Rhamphoryncus> | Yes, and it's pretty clear I'm going to have my own strange scale issues :) |
21:44 | <~Vornicus> | I remember calculating something like six different sizes used by OTTD in some places. |
21:44 | < Rhamphoryncus> | sshine: yeah, cities are problematic since they'll have *drastic* changes over time. I expect the major ones to all be connected by rail, so they'll need to be fully detailed |
21:45 | < Rhamphoryncus> | Vornicus: OTTD is on crack |
21:45 | <~Vornicus> | (you've got the two different speed scales, based on realtime and calendar time; the scale suggested by the altitude map; the scale suggested by the gauge of the rails, the one by the length of the cars, the one by the size of world objects.) |
21:46 | < Rhamphoryncus> | There's lots of variety in world objects too |
21:46 | <~Vornicus> | (which itself varied drastically depending on which object you used. I picked the football field because that has an official size.) |
21:46 | < Rhamphoryncus> | heh |
21:48 | < Rhamphoryncus> | I think a 50:1 scale would work, meaning a single person house would hold 2500 people ;) |
21:48 | < Rhamphoryncus> | Might not be good gameplay, heh |
21:48 | <~Vornicus> | Trying to get reasonable scale is hard in /every/ type of game. |
21:48 | < Rhamphoryncus> | yeah |
21:49 | <~Vornicus> | I mean |
21:49 | <~Vornicus> | Right now I'm playing Twilight Princess and Link has never taken the 20 minute walk to Hyrule Castle Town. |
21:49 | < Rhamphoryncus> | heh |
21:49 | <~Vornicus> | and even that I think is exaggerated, I should time it when I've unlocked the standard path. |
21:50 | < Rhamphoryncus> | For train tech I might follow real life for most of it, but around the end of the 20th century freight speeds have stagnated |
21:51 | < Rhamphoryncus> | So gameplay needs to take them in a totally fictional direction to keep progressing |
21:52 | < Rhamphoryncus> | economics.. growth is exponential. After a while building costs are trivial. On particularly efficient games you can even flatten a decent sized ocean. That needs to be rebalanced somehow |
21:53 | < Rhamphoryncus> | Competition-based pricing might do the trick there |
21:55 | < Rhamphoryncus> | It would be cool to zoom out and see the whole planet, but having a flat map generated as you explore could be really interesting too |
21:56 | < sshine> | having both would be pretty amazing, but I don't know how that'd work. |
21:56 | < Rhamphoryncus> | hrm |
21:57 | < sshine> | maybe simply by using a sphere as game map. doesn't even actually need 3D rendering to see from atop. |
21:58 | < sshine> | on low resolution, that'd result in slightly curvy tiles. |
21:58 | < Rhamphoryncus> | Even if I generate as you explore it'd be a good feature to bake in a configured limit, so users can't use up inordinate amounts of memory |
21:59 | < sshine> | if I want to play with procedurally generated 3D maps like Minecraft, is there an engine that allows me to do that? |
22:00 | < Rhamphoryncus> | I wonder if I could use healpix for my cell shapes, but also allow flat cells for flat maps. Then again, unless you expect to wrap you can simulate that as a slice of a very large sphere |
22:01 | | * Rhamphoryncus eyes some 3-way intersections on healpix |
22:02 | < Rhamphoryncus> | healpix is awesome |
22:02 | <~Vornicus> | Mario jumps four meters (or is it 8?) into the air from a dead stop, on a planet with 3+ (6?) g worth of acceleration. in Civilization it takes a year to fly across the ocean.. |
22:02 | < Rhamphoryncus> | I don't care about equal area per-say, but most ways I would attempt would end up with vastly different areas, and that's problematic |
22:03 | <~Vornicus> | the lack of equal area in equirectangular is why I built the vorn projection. |
22:03 | <~Vornicus> | THough very recently I realized that I was overengineering that too. |
22:03 | | ErikMesoy is now known as ErikMesoy|sleep |
22:06 | < Rhamphoryncus> | healpix is sometimes concave, right? |
22:06 | <~Vornicus> | or rather the lack of even vaguely equal area. |
22:07 | <~Vornicus> | Rhamphoryncus: what do you mean by concave? Like, the lines between corners aren't straight but bow into one of the cells as they would be if they were straight? Yes. |
22:07 | < Rhamphoryncus> | Vornicus: yeah |
22:08 | <~Vornicus> | Healpix defines not only the locations of points but the paths of the cells. For the most part - especially as you get past layer 0 - they're close enough to straight that you don't care though |
22:08 | <~Vornicus> | And anyway if you use healpix all the way down, the edges of the pixels don't change. |
22:08 | < Rhamphoryncus> | yeah |
22:09 | < Rhamphoryncus> | At a larger scale I need to model the curve but at the smaller scale I can cheat |
22:13 | < Rhamphoryncus> | I wonder if this is all over engineering too |
22:15 | < Rhamphoryncus> | healpix doesn't maintain length, likely to be a more useful metric than area, still has special cases (the 8 3-way corners), and if you include the equatorial bulge and other variations you won't be exact anyway |
22:15 | <~Vornicus> | I can find out how well it models length. |
22:16 | < Rhamphoryncus> | poor enough to be irrelevant |
22:16 | <~Vornicus> | If nothing else I can guarantee it's better than equirectangular~ |
22:16 | <~Vornicus> | (which has an infinite length deviation) |
22:17 | < Rhamphoryncus> | So.. why not let each cell define the length of each edge, and the shape of each edge, and which other cell it borders there |
22:18 | < Rhamphoryncus> | So long as the border parameters match (including further subdivisions, as with tessellation), and it has an internal grid system, why should I care? |
22:19 | <~Vornicus> | though that will be an issue if you use adaptive healpix: you can't go through edge centers and have them be edge centers at deeper layers. |
22:19 | < Rhamphoryncus> | yeah, I'd have to use whatever form of healpix maintains the edge shape exactly |
22:20 | <~Vornicus> | Not what I mean |
22:20 | <~Vornicus> | when you subdivide you'd be going through the /corner/ |
22:20 | < Rhamphoryncus> | If I go halfway along the edge and chop in half that might not be the right spot? |
22:23 | <~Vornicus> | It should be close |
22:23 | <~Vornicus> | But the thing is |
22:23 | <~Vornicus> | even if it were exact, the center of an edge at one layer is really at the corner at the next. |
22:24 | < Rhamphoryncus> | I don't understand the problem |
22:25 | <~Vornicus> | in ottd, the rails go through the centers of the edges of the cells, right |
22:25 | < Rhamphoryncus> | Yes, but that's ottd |
22:26 | <~Vornicus> | But then if you were to subdivide the cells, you'd end up with the rails going through corners instead. |
22:27 | <~Vornicus> | To avoid this you would want to use cell edges instead as the path for your rails. |
22:27 | < Rhamphoryncus> | My intent is to model the map with around 2.5 meter granularity and track placement with 0.25 meter granularity, but treat the tracks as interconnected objects rather than a property of that tile |
22:27 | <~Vornicus> | i see. |
22:28 | < Rhamphoryncus> | And hopefully enough flexibility to make orientation of the track irrelevant |
22:29 | | * Vornicus does some math |
22:30 | < Rhamphoryncus> | Hrm, probably much finer than 0.25 meter. Maybe fixed-point integer math >.> |
22:31 | < Rhamphoryncus> | So long as each cell provides its own geometry it doesn't really matter |
22:31 | < Rhamphoryncus> | err it's own coordinates |
22:32 | < Rhamphoryncus> | With a way to convert to approximate global coordinates when needed |
22:32 | <~Vornicus> | okay that's layer 21, to make your maximal map (assuming earth-size planet) 52 TB per byte of record. |
22:33 | < Rhamphoryncus> | heh |
22:34 | < Rhamphoryncus> | What's the map resolution? |
22:34 | <~Vornicus> | that's 2 million pixels on a side for a single layer-0 square. |
22:35 | < Rhamphoryncus> | of which there's 12? |
22:35 | <~Vornicus> | Yeah. |
22:35 | < Rhamphoryncus> | I was suggesting around 100,000? for the whole planet |
22:36 | < Rhamphoryncus> | That's going backwards from acceptable map sizes |
22:36 | <~Vornicus> | Okay, let me calculate. |
22:37 | < Rhamphoryncus> | wait, that's not right |
22:37 | <~Vornicus> | layer 15. |
22:38 | < Rhamphoryncus> | ah, math fail. Yeah, 100,000? is right |
22:38 | <~Vornicus> | 200 meters. |
22:38 | < Rhamphoryncus> | Which is 10 billion tiles |
22:39 | <~Vornicus> | is your tile width. |
22:39 | < Rhamphoryncus> | *nod* |
22:40 | < Rhamphoryncus> | I'm looking at geodesic grids now |
22:40 | < Rhamphoryncus> | I wonder if I should do an icosahedron and stick a communication tower on the fixed intersections ;) |
22:41 | <~Vornicus> | Heh. |
22:41 | <~Vornicus> | I have (ridiculously awful) code for geodesating a sphere somewhere. |
22:42 | < Rhamphoryncus> | this style of subdivision: http://ars.els-cdn.com/content/image/1-s2.0-S0021999111006735-gr3.jpg |
22:44 | <~Vornicus> | Yeah. I did something slightly more complex: I didn't want a straight power of 2 (because I was making hexagons, I needed values divisible by 3), so I made a thing that did it with averaging of great circle intersections. |
22:44 | < Rhamphoryncus> | *nod* |
22:44 | < Rhamphoryncus> | Most of the results for geodesic grids are on hexagons, not triangles |
22:45 | <~Vornicus> | (because doing it by expanding out regular triangle intersections gives terrible results) |
22:45 | < Rhamphoryncus> | But triangles should be simpler for my purposes. Maybe, heh |
22:45 | < Rhamphoryncus> | hmm? |
22:46 | < Rhamphoryncus> | My current line of thinking is that although geodesic gets nothing "right" (unlike healpix), it's still the "least bad" overall when you look at all the criteria |
22:47 | <~Vornicus> | Rham: if you subdivide a triangle of an icosahedron, and then project those points onto the sphere, you get really tiny triangles near the vertices. |
22:47 | < Rhamphoryncus> | I bet triangular would lead to a nice coordinate system. Although it may seem worse to use 3 axis rather than 2, if you start optimizing the bits required I bet it's the same |
22:47 | < Rhamphoryncus> | ahh |
22:48 | < Rhamphoryncus> | And the center of your original triangle ends up with the largest |
22:49 | < Rhamphoryncus> | Distorting their edges and tweaking the corners should be a good compromise |
22:49 | <~Vornicus> | http://www.flickr.com/photos/7861878@N06/3556592941/in/photostream |
22:50 | < Rhamphoryncus> | Still subdividing as if they're triangular, just not rendering or measuring exact distances as exactly triangular |
22:50 | < Rhamphoryncus> | I've seen that so many times I should bookmark it ;) |
22:50 | <~Vornicus> | Repeated subdivide works pretty well but again you're restricted to power-of-2 |
22:50 | <~Vornicus> | or at the very least small-factors composites. |
22:51 | < Rhamphoryncus> | I don't see an issue with that |
22:51 | < Rhamphoryncus> | (btw, I had that image open about 10 minutes ago) |
22:52 | <~Vornicus> | hahaha, seriously? |
22:52 | < Rhamphoryncus> | yup |
22:52 | < Rhamphoryncus> | "vorn projection? That's the... yeah yeah, that!" |
22:53 | < Rhamphoryncus> | I've had 4 or 5 conversations with you on this subject :) |
22:54 | <~Vornicus> | It seems to come up a lot. |
22:54 | < Rhamphoryncus> | Hum.. I wonder if I should store map properties (height/etc) at each vertex and duplicate them across cells (large-ish triangle) |
22:54 | < Rhamphoryncus> | It's a favourite subject :) |
22:55 | < Rhamphoryncus> | icosahedron has 20 faces, 12 vertices, 30 edges. 1.5 edges/face doesn't work out too well, so it'd be easier to duplicate that data |
22:56 | <~Vornicus> | If you store at vertices then you will probably either want crazy pointer shit or just sensible corner maintenance. |
22:56 | < Rhamphoryncus> | Sensible meaning? |
22:57 | <~Vornicus> | Well, okay, I don't know how sensible it is |
22:58 | <~Vornicus> | Your macrocell-edge vertices have to appear to be one vertex but may need to be stored in two places. |
22:59 | < Rhamphoryncus> | yup. 5 places at the extreme |
22:59 | <~Vornicus> | In order to prevent duplication bugs you'll need to make sure that you have very few write interfaces and they're all carefully. |
22:59 | <~Vornicus> | all careful about that, rather. |
22:59 | < Rhamphoryncus> | yeah |
23:00 | <~Vornicus> | and then we're into accessors and, well, yes. |
23:00 | < Rhamphoryncus> | But it makes rendering straightforward. Straight triangular tessellation |
23:00 | <~Vornicus> | Indeed. |
23:01 | < Rhamphoryncus> | The map has a feeling of isometry, even though it's not perfect underneath |
23:02 | <~Vornicus> | Indeed. The distortion does get pretty obvious when you zoom near a corner. |
23:02 | < Rhamphoryncus> | Is it still obvious with the weighting tricks? |
23:03 | <~Vornicus> | Yeah, pretty obvious. |
23:03 | <~Vornicus> | You're getting pentagons when you should be getting hexagons. |
23:04 | < Rhamphoryncus> | eyecandy! http://westy31.home.xs4all.nl/Geometry/Geometry.html |
23:04 | < Rhamphoryncus> | Yes, but I'll be layering higher resolution models on top anyway |
23:06 | < Rhamphoryncus> | no, bad adam, don't try to include reimann surfaces! |
23:06 | <~Vornicus> | heh |
23:06 | <~Vornicus> | Rham: and those higher resolution models will themselves have to distort. |
23:07 | < Rhamphoryncus> | Most merely have to orient. Trees, rocks |
23:09 | < Rhamphoryncus> | If a player is altering the map itself (raising and lowering) they could see it |
23:12 | < gnolam> | https://twitter.com/nikcub/status/205489752684765185/photo/1 |
23:13 | <~Vornicus> | derpatrons |
23:15 | < Rhamphoryncus> | .. that's a spectacular derp |
23:15 | < gnolam> | Yeah. |
23:16 | < Rhamphoryncus> | Vornicus: is this power-of-3 in the way you mean? http://1.bp.blogspot.com/-3vXARzf4VJ4/T1pF6y-ocyI/AAAAAAAAAVI/L0jDgbBTxxU/s1600/ frequency_diagram.jpg |
23:17 | <~Vornicus> | THat's doing it the wrong way |
23:17 | < Rhamphoryncus> | Heh. That's how I would have done it |
23:17 | < Rhamphoryncus> | Is power-of-2 on there correct? |
23:18 | <~Vornicus> | Those aren't actually done power-of-anything |
23:18 | < Rhamphoryncus> | ah, so I have no idea what power-of means :) |
23:18 | <~Vornicus> | THey're literally subdividing a flat icosahedron and projecting. |
23:18 | < Rhamphoryncus> | yep |
23:19 | <~Vornicus> | When I say power of 2 -- looking back at the grey and yellow sphere - you can see that what they've done is, subdivide the cell via midpoints, project, subdivide these new triangles via midpoints, project. |
23:20 | < Rhamphoryncus> | hrm. Projecting along each step, which reduces the error? |
23:20 | <~Vornicus> | etc. In that particular case it's four projection sequences. |
23:20 | <~Vornicus> | Right. |
23:22 | <~Vornicus> | What I did for mine, because I knew I wouldn't get a power of 2 for the number of subdivisions I wanted, was pick points evenly spaced along the edges of a spherical projection of an icosahedral triangle, and then draw great circles across, and average their intersection points. |
23:22 | < Rhamphoryncus> | Which gives perfect alignment for great circles (thin black lines on the grey/yellow image)? |
23:22 | <~Vornicus> | Not perfect, but certainly a lot less distorted. |
23:23 | < Rhamphoryncus> | I'm not sure |
23:23 | <~Vornicus> | Well, it gives perfect alignment for the first layer of geodesation. |
23:24 | <~Vornicus> | Er, power-of-two does. |
23:24 | <~Vornicus> | Mine doesn't like further subdivision in the first place and it's overkill for 2. |
23:24 | < Rhamphoryncus> | http://en.wikipedia.org/wiki/File:Icosahedron_subdivided.png |
23:24 | < Rhamphoryncus> | Yeah |
23:26 | <~Vornicus> | the "frequency diagram" one you can clearly see already that the center triangle is much larger than the corner triangles at 4v. |
23:27 | < Rhamphoryncus> | yeah |
23:28 | < Rhamphoryncus> | That's undesirable. Broad differences in scale would be visible |
23:29 | < Rhamphoryncus> | Is there a triangular equivalent to healpix? |
23:29 | <~Vornicus> | YOu'll also note that in the power-of-2 one, you can tell that the thick red lines give a distorted hexagon. |
23:29 | <~Vornicus> | Not that I'm immediately aware of. |
23:30 | < Rhamphoryncus> | Hrm. Hierarchical triangular mesh is based on an octahedron, not an icosahedron |
23:31 | <~Vornicus> | could be done. |
23:31 | <~Vornicus> | healpix is actually based off a rhombic dodecahedron. |
23:32 | < Rhamphoryncus> | I like icosahedron as it's the base shape with the least distortion to start out with |
23:33 | < Rhamphoryncus> | You're right that I'd actually be doing hexagons |
23:34 | < Rhamphoryncus> | Slightly concave in some cases |
23:34 | <~Vornicus> | http://mathworld.wolfram.com/DisdyakisTriacontahedron.html unless you wanna go with this guy. |
23:35 | < Rhamphoryncus> | Applied infinitely you'd approach a curve :) |
23:35 | <~Vornicus> | (don't go with that guy.) |
23:36 | < Rhamphoryncus> | No, I don't want elongated triangles. I want approximately equilateral |
23:36 | <~Vornicus> | and if you want hexagons you won't end up with something you can power-of-2 |
23:38 | < Rhamphoryncus> | Power of 2 equilateral subdivision of an icosahedron, but tweaking the mid point of the edges at each step (so they're technically hexagons) |
23:39 | < Rhamphoryncus> | At the world scale I might have to pre-tweak it a few steps so there's no visible shift, which'd make it much more than 6 sides |
23:39 | <~Vornicus> | I don't get what you just said about the "technically hexagons" thing |
23:39 | < Rhamphoryncus> | 48-sided triangle, hehe |
23:40 | < Rhamphoryncus> | Hrm. Ignore that I suppose |
23:40 | < Rhamphoryncus> | It gets even more convoluted (in terminology) when you consider I might expand one section and not the one next to it. Still has to line up |
23:43 | <~Vornicus> | And that can be generally taken care of by always rendering at the same detail (you should have at this point a log(detail) algorithm for calculating render locations from model coordinates, so) |
23:44 | < Rhamphoryncus> | eh? |
23:47 | < Rhamphoryncus> | huh, rather than 3 axis coordinates I could use 4-way subdivision. Don't know how easy that is to manipulate but it's optimal for storage |
23:53 | <~Vornicus> | er, data model coordinate - indexes into your game data arrays. |
23:53 | < Rhamphoryncus> | Edges must be rendered at the same level from both sides (this is a requirement of opengl), so to have variable LoD it must transition within the body of a triangle |
23:54 | < Rhamphoryncus> | Not sure what you mean by that either |
--- Log closed Tue May 29 00:00:52 2012 |