--- Log opened Sat May 12 00:00:34 2012 |
00:22 | | You're now known as TheWatcher[T-2] |
00:26 | | You're now known as TheWatcher[zZzZ] |
00:42 | | Silver_Adept [silveradept@Nightstar-0bcc338c.click-network.com] has joined #code |
00:44 | | * Silver_Adept waves. The code snippet that was for the slideshow - exactly what I needed. Bolted on a few extra bits to kludge up a solution and we're good to go. |
00:44 | < Silver_Adept> | Thanks, everyone. |
00:44 | <~Vornicus> | Fuckyeah. |
00:45 | | maoranma [maoranma@490720.DD2C85.7A6A94.8C3DA8] has joined #code |
00:45 | < Silver_Adept> | Ended up saying, "Fuckit." I put the bash script in both directories and bolted on an if statement that switched between the nonrandom slideshow and the random slide. |
00:46 | | Noah [maoranma@Nightstar-d3947588.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
00:50 | | maoranma is now known as noah |
00:50 | | noah is now known as Noah |
00:50 | < Noah> | Silver_Adept: There you go, like a true hacker |
00:53 | < Silver_Adept> | Yeah, something like that. A couple tutorials and some "So, how do I make this work..." - if that's being a hacker, then I can at least say I've got the "duct tape" belt rank. |
00:54 | < Noah> | Wait until you get the superglue rank, things get real fun then |
01:00 | < Silver_Adept> | That would be me trying to generate an EPUB3-compliant book from a Word Document...by hand. |
01:01 | < Noah> | Ahh, sounds like you're already dabbling |
01:01 | < Noah> | Which reminds me, I forgot to get superglue to fix this stupid shelf on my desk |
01:01 | < Noah> | well have to go get that tonight |
01:02 | <@Tamber> | Shall we have the solvents on hand for when you glue yourself to it? |
01:05 | < Noah> | Please; I, master of supergluery, have never adherred myself to anything I didn't directly intend to~ |
01:06 | <@Tamber> | :) |
01:06 | <&McMartin> | sshine: Idly, regarding your earlier question |
01:06 | < Noah> | And I'm off~ |
01:06 | <@Tamber> | Wondered what smelt funny. |
01:06 | <&McMartin> | I've recently had the opportunity to look at dynamic-programming solutions to problems |
01:06 | <&McMartin> | And it does feel a little trickier to sort out/grade than the non-dynpro versions. |
01:07 | < Noah> | Oh yea? |
01:07 | <&McMartin> | (Unless it's straight up 'cache results') |
01:07 | < Noah> | Dynamic programming in what sense? |
01:07 | <&McMartin> | It's a name for a specific kind of divide and conquer solution technique |
01:08 | < Noah> | Ah |
01:08 | < Noah> | So not in the sense of dynamic programming languages? |
01:08 | <&McMartin> | No, it's very different |
01:08 | < Noah> | Oh, okay |
01:08 | <&McMartin> | http://en.wikipedia.org/wiki/Dynamic_programming |
02:32 | <@rms> | http://www.vidarholen.net/contents/itslearning/ |
--- Log closed Sat May 12 02:49:15 2012 |
--- Log opened Sat May 12 03:06:25 2012 |
03:06 | | TheWatcher[zZzZ] [chris@Nightstar-3762b576.co.uk] has joined #code |
03:06 | | Irssi: #code: Total of 26 nicks [7 ops, 0 halfops, 0 voices, 19 normal] |
03:06 | | mode/#code [+o TheWatcher[zZzZ]] by ChanServ |
03:06 | | Irssi: Join to #code was synced in 39 secs |
03:11 | <@ToxicFrog> | Noah: dynamic programming is basically overlapping divide and conquer + memoization |
03:17 | | Attilla [Obsolete@Nightstar-210af7d5.as43234.net] has quit [Ping timeout: 121 seconds] |
03:33 | <~Vornicus> | Here, have fibonnacci, done by dynamic programming: _f = {0: 0, 1:1}; def f(k): global _f; if k not in _f: _f[k] = f(k-1) + f(k-2);; return _f[k];; |
03:46 | <&McMartin> | Of course, if you throw out values as they become useless, you get: a = 0; b = 1; for i = 2 to n: (a, b) = (b, a+b); return b |
03:58 | <~Vornicus> | They only actually become useless if you intend to use fibonacci exactly once. |
03:59 | <@Alek> | actually. |
04:00 | <@Alek> | yanno, if you return b FIRST, you'd return the whole sequence. |
04:00 | <@Alek> | cause it starts 1,1. |
04:01 | <@Alek> | and heck. drop the for. let it run forever. |
04:03 | <@Alek> | a = 0; b = 1; i = 2; while i > 1 return b; (a, b) = (b, a+b); i++; end while |
04:03 | <@Alek> | ok, now how can this be simplified even further? |
04:03 | <@Alek> | ah. (a, b, i) = (b, a+b, i+1); |
04:04 | <@Alek> | although. |
04:04 | | 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!] |
04:04 | <@Alek> | does the () operator use for a+b the original a or the a=b value? |
04:05 | <@Alek> | as in, does it add AFTER setting a=b or BEFORE? |
04:06 | <@Alek> | cause, yanno, if it's after, it ruins the code. >_> |
04:08 | <~Vornicus> | Alek: the assignment happens last |
04:09 | <~Vornicus> | and you missed it, the return is happening outside the loop in mcm's |
04:09 | <~Vornicus> | (mine doesn't have a loop per se but recurses to do its work) |
04:09 | < Tarinaky> | Hey guys. |
04:09 | <@Alek> | ok... that should work, then. and yeah, I figured. his is for returning the nth value. mine's for returning all values, so yeah. XD |
04:09 | <~Vornicus> | and in your case you'd want to use yield |
04:09 | <~Vornicus> | not return, because return ends execution |
04:09 | <@Alek> | yield? not familiar with that one. |
04:09 | <@Alek> | ah. point. |
04:10 | | * Alek is still at basic level with c. <_< |
04:10 | <~Vornicus> | yield shows up in generators in python: use it when you have a loop that hands values back to the main program |
04:10 | <@Alek> | ah. no python knowledge here. yet. :/ |
04:11 | <~Vornicus> | Execution halts but the state and in-function "program counter" remain. |
04:11 | <@Alek> | ooh. that IS useful. |
04:11 | <@Alek> | without it, you'd want to return the state and counters as well, if you wanted to resume at another time. is there a C/C++ equivalent? |
04:12 | <~Vornicus> | Not directly. it's sugar for the standard iterator stuff. |
04:13 | <@Alek> | please rephrase? |
04:14 | < Tarinaky> | I went through "Computer Organisation And Design" and I think I need a different (slightly more advanced) treatment. |
04:15 | < Tarinaky> | I can't see anything in that book that I'm not already familiar with. |
04:15 | < Tarinaky> | I was also hoping for something a bit more... practically minded than theoretical :x |
04:15 | <@Alek> | theory is also useful. |
04:15 | <~Vornicus> | Alek: technically, what python does is it takes your generator function and builds a proper iterator out of it, with the next() function built so it simply sets state and returns. |
04:15 | <@Alek> | it lets you expand on practice. XD |
04:16 | < Tarinaky> | Alek: They're both useful but I need more of one than the other. |
04:16 | <@Alek> | Vorn: ahk. |
04:16 | <@Alek> | Taki: true. |
04:16 | <~Vornicus> | So in C++ you'd build an iterator the normal way, and in C, well, I don't know what you'd do in C. |
04:17 | <@Alek> | I repeat, return the state and counter variables, then pass them back in next round? |
04:17 | <@Alek> | would that work? |
04:17 | <@Alek> | ?_? |
04:17 | < Tarinaky> | Vornicus: struct State; ReturnType next(State*) ? |
04:18 | <~Vornicus> | That's pretty much the way it's probably done. |
04:18 | | * Alek shrugs. |
04:18 | <@Alek> | is there even a point to learning C, any longer? as opposed to C++? |
04:18 | < Tarinaky> | Yes. |
04:18 | <~Vornicus> | C is a lot cleaner to work in. |
04:19 | < Tarinaky> | Some of the microprocessor and PIC IDEs I've seen use C or subsets of C. |
04:19 | <@Alek> | C# probably is useful, since a lot of games apparently use it, even today. and some businesses, or so I hear. |
04:19 | <~Vornicus> | Among other things it actually has an ABI |
04:19 | <@Alek> | ABI? |
04:20 | <~Vornicus> | binary interface - basically, C++ libraries are notoriously hard to get working with C++ libraries built even on different versions of the same compiler |
04:20 | <@Alek> | also, given that I should focus on one at a time, so as not to mix them up: which language should I focus on learning first, for employability? |
04:20 | <@Alek> | well, employability AND a base for learning other languages, perhaps. |
04:21 | < Tarinaky> | Look at job adverts in your area. |
04:21 | <~Vornicus> | Any procedural / object oriented language. Generally you're going to want to learn like five of them before I'd consider hiring you at all. |
04:21 | < Tarinaky> | Whatever language they name is the languages they're looking for skills in :p |
04:21 | <@Alek> | :P |
04:21 | < Tarinaky> | Then learn a bunch more. |
04:21 | <@Alek> | I seem to see a lot of Ruby around here. |
04:21 | < Tarinaky> | You should probably learn some Ruby. |
04:21 | <~Vornicus> | My list would go something like Python, C#, Javascript, Perl or Ruby, and Bash |
04:22 | < Tarinaky> | Does BASH even count? |
04:22 | <~Vornicus> | It's a language. I chose it because it's kinda weird. |
04:22 | < Tarinaky> | That'd imply DOS Batch was a language too. |
04:23 | <@Alek> | internet software: SQL, .NET(C# or VB), ASP.NET, JavaScript. random posting. |
04:23 | <~Vornicus> | It certainly seems to do enough |
04:23 | <~Vornicus> | The point of bash in there is that it has some very very different assumptions about what it's supposed to do. |
04:23 | < Tarinaky> | I suppose so. |
04:24 | <@Alek> | software eng: C, core Java, LAMP, PHP, Perl, Python... |
04:24 | <@Alek> | ?_? |
04:24 | <@Alek> | ColdFusion, Adobe Flex... |
04:24 | <@Alek> | hm. |
04:25 | < Tarinaky> | Anyway. Any suggestions on what I ought to be looking at to bolster my knowledge? |
04:25 | <@Alek> | I'll dig out my books and try to make an effort, after the move. |
04:25 | <~Vornicus> | Avoid PHP if you can. |
04:26 | <@Alek> | I have some C and C++ books, and I think Python. |
04:26 | <@Alek> | why, Vorn? |
04:27 | <@Alek> | well, it's one of the P languages, I forget which, but I THINK it was Python. hrm. haven't looked at them in over a year. D: |
04:28 | <~Vornicus> | PHP is a really, really bad language. |
04:28 | <@Alek> | howzat? |
04:28 | < Tarinaky> | Wait, you mean there are alternatives to PHP? |
04:29 | | * Tarinaky 's first experiences with PHP are some of the reasons he avoids touching webdev with a 10ft pole. |
04:29 | | * Alek patpats Taki. |
04:30 | <~Vornicus> | Alek: okay so let's talk about strpos |
04:31 | <@Alek> | sure. >_> |
04:31 | <~Vornicus> | Pretty much every language has one of these in the standard library. C calls it strpos, python calls it str.index, etc. PHP has it too, of course. |
04:32 | <~Vornicus> | So strpos, what it does is, it searches a string we call the haystack, for a string we call the needle. And it returns the index that it first found the needle in the haystack. |
04:33 | <~Vornicus> | But what happens if the needle can't be found there? |
04:33 | <~Vornicus> | C produces an obviously bad index: -1. |
04:33 | <~Vornicus> | Python raises an exception. |
04:33 | <~Vornicus> | Most other languages fall into one of those two categories. |
04:33 | <~Vornicus> | PHP... returns False. |
04:34 | <~Vornicus> | Now, this wouldn't be so bad, except that False == 0, and it will be automatically cast to 0 any time you try to use it for anything, and 0 is a valid index into the string. |
04:36 | <~Vornicus> | So you have to manually check for False, every time. |
04:36 | <@rms> | ... |
04:36 | < Tarinaky> | In fairness, you'd have to check for -1 every time in C too. |
04:36 | <@rms> | Guess what. If it returns -1 you'd have to do the same unless you want a really messy error. |
04:36 | <~Vornicus> | rms: sure, but at least -1 actually causes an error! |
04:37 | < Tarinaky> | Which isn't -always- desirable. |
04:37 | <@rms> | ... or horrible memory corruption. |
04:37 | <~Vornicus> | False doesn't. |
04:38 | <@rms> | Also it's technically false, not False. |
04:38 | <~Vornicus> | Well, true |
04:38 | < Tarinaky> | I just realised a very good reason why Python has zero-indexed lists rather than 1-indexed lists. |
04:38 | < Tarinaky> | Without invoking analogy to C-isms. |
04:38 | <@rms> | However it doesn't matter because PHP gives zero fucks about casing on keywords. |
04:39 | < Tarinaky> | Python counts negative indexes in reverse. |
04:39 | < Noah> | And starts at -1 for those |
04:39 | < Noah> | Instead of 0 with positive indexes |
04:40 | <~Vornicus> | http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ linked earlier. |
04:40 | < Tarinaky> | Making 0 be the last element is counter-intuitive. |
04:40 | < Tarinaky> | And making indexes discontinous could create headaches. |
04:41 | < Noah> | Yea, maybe I linked that |
04:41 | <~Vornicus> | You did. |
04:41 | < Noah> | I thought so |
04:45 | < Noah> | http://25.media.tumblr.com/tumblr_m2rhu1eOQm1qejqvxo1_500.jpg |
04:48 | < Tarinaky> | "I thought I had a problem, so I used C++. Now everything looks like a nail." |
04:48 | < Tarinaky> | "I thought I had a problem, so I used PHP. Now my problem is False." |
04:49 | | * Tarinaky will never get old of that joke format ^^ |
04:49 | < Tarinaky> | *get tired |
04:54 | <@Tamber> | "I had a problem, so I used PHP. Now my Function problem() is deprecated in joke.php on line 2 is False." |
05:06 | <@Alek> | does PHP even stand for anything? |
05:06 | < Tarinaky> | Hypertext Preprocessor |
05:06 | <@Tamber> | "Personal Home Page" |
05:06 | <@Tamber> | Or, it used to be something like that. |
05:06 | < Tarinaky> | Because people love acronym jokes. |
05:07 | <@Alek> | pah. |
05:09 | < Tarinaky> | Pah-Processor |
05:10 | < Tarinaky> | I'm going to shower and clean my room. |
05:10 | < Tarinaky> | BBIAB. |
05:48 | | * McMartin fires up GMHTML5 again for the first time in awhile |
05:50 | <@Alek> | ? |
05:59 | | Kindamoody is now known as Kindamoody|breakfast |
06:02 | | * McMartin makes BUTTOSN |
06:02 | <&McMartin> | BUTTONS, too |
06:08 | < Tarinaky> | BUTT OS N, the only operating system powered by flatulance! |
06:08 | < Tarinaky> | Now with the improved Gas desktop environment! |
06:35 | < Rhamphoryncus> | Tarinaky: negative indexes are a pretty meh reason IMO. Much better is allowing %len(...) to work |
06:35 | < Rhamphoryncus> | Hrm. I suppose that's not terribly common either |
06:37 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited] |
06:38 | < Tarinaky> | Continuous negative indexes allow circular lists. |
06:40 | < Tarinaky> | Having 0 be out of bounds while 1 and -1 are in bounds would be pretty fucked up. |
06:40 | < Tarinaky> | And python doesn't have anything else that even really approaches reverse iterators. |
07:07 | | Kindamoody|breakfast is now known as Kindamoody |
07:22 | | Kindamoody is now known as Kindamoody|movie |
07:33 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
07:33 | | mode/#code [+o himi] by ChanServ |
07:34 | | eckse [eckse@Nightstar-dab5dc59.dsl.sentex.ca] has quit [Client closed the connection] |
--- Log closed Sat May 12 08:12:16 2012 |
--- Log opened Sat May 12 11:01:16 2012 |
11:01 | | TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code |
11:01 | | Irssi: #code: Total of 21 nicks [6 ops, 0 halfops, 0 voices, 15 normal] |
11:01 | | mode/#code [+o TheWatcher] by ChanServ |
11:01 | | Irssi: Join to #code was synced in 36 secs |
11:56 | | Kindamoody|movie is now known as Kindamoody |
12:01 | | Attilla [Obsolete@Nightstar-604551a6.as43234.net] has joined #code |
12:07 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
12:19 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
12:19 | | mode/#code [+o himi] by ChanServ |
13:07 | | Kindamoody is now known as Kindamoody|out |
13:49 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
14:59 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code |
15:51 | | Kindamoody|out [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has quit [Ping timeout: 121 seconds] |
16:21 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Operation timed out] |
16:53 | | eckse [eckse@Nightstar-3b021371.dsl.sentex.ca] has joined #code |
16:53 | | mode/#code [+o eckse] by ChanServ |
16:54 | | eckse [eckse@Nightstar-3b021371.dsl.sentex.ca] has quit [Client closed the connection] |
16:57 | | eckse [eckse@Nightstar-3b021371.dsl.sentex.ca] has joined #code |
16:57 | | mode/#code [+o eckse] by ChanServ |
17:32 | | Derakon is now known as Derakon[AFK] |
17:44 | < Rhamphoryncus> | So, despite all my trials with opengl, I now have 4 rainbow-coloured triangles pitching back and forth every few seconds |
17:50 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
17:50 | | mode/#code [+o ToxicFrog] by ChanServ |
18:40 | | Kindamoody|out [Kindamoody@Nightstar-6154a72a.tbcn.telia.com] has joined #code |
18:40 | | mode/#code [+o Kindamoody|out] by ChanServ |
18:41 | | Kindamoody|out is now known as Kindamoody |
18:51 | | AnnoDomini [annodomini@A08927.B4421D.B81A91.464BAB] has joined #code |
18:52 | | mode/#code [+o AnnoDomini] by ChanServ |
18:57 | | ErikMesoy is now known as Prince |
18:58 | | Attilla [Obsolete@Nightstar-604551a6.as43234.net] has quit [[NS] Quit: ] |
19:05 | | Attilla [Obsolete@Nightstar-604551a6.as43234.net] has joined #code |
19:06 | | AnnoDomini is now known as Jasever |
19:06 | | rms is now known as Anna |
19:26 | | EvilDarkLord is now known as Aeron |
19:54 | | Silver_Adept [silveradept@Nightstar-0bcc338c.click-network.com] has quit [Ping timeout: 121 seconds] |
19:58 | | Alek [omegaboot@510B1D.385A17.A0F5C0.46F96B] has joined #code |
19:58 | | mode/#code [+o Alek] by ChanServ |
20:02 | | Alek [omegaboot@510B1D.385A17.A0F5C0.46F96B] has quit [Ping timeout: 121 seconds] |
20:16 | | Kindamoody is now known as Kindamoody[zZz] |
21:23 | | Prince is now known as ErikMesoy|sleep |
21:25 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has joined #code |
21:25 | | mode/#code [+o Alek] by ChanServ |
22:33 | | Derakon[AFK] is now known as Derakon |
23:09 | <&McMartin> | Rhamphoryncus: Can you re-link that OpenGL article? |
23:09 | <&McMartin> | Also, time to learn to use branches in git. |
23:10 | < Tarinaky> | One does not simply git branch into Mordor. |
23:13 | <&McMartin> | Indeed, that's why I need to make sure I won't leeg everything up. |
23:26 | < Rhamphoryncus> | http://www.opengl.org/wiki/Getting_started |
23:26 | < Rhamphoryncus> | http://www.arcsynthesis.org/gltut/index.html |
23:26 | < Rhamphoryncus> | http://www.opengl.org/wiki/Tutorial1:_Creating_a_Cross_Platform_OpenGL_3.2_Conte xt_in_SDL_%28C_/_SDL%29 |
23:27 | < Rhamphoryncus> | And just ask if you want me to explain what a VAO is, what a shader is, etc. I put enough blood, sweat, and tears in to figuring it out (no, none of the articles explain it properly), so you might as well benefit from that |
23:30 | <&McMartin> | We'll see |
23:30 | <&McMartin> | Meanwhile, I have several years of experience in linear algebra, which I seem to recall as him dismissing as being unworthy of explanation as opposed to The Reason You're Here, so I may be able to trade~ |
23:30 | <&McMartin> | I just need to go dig out the 1.x stuff that says what the deprecated fucntions actually did and thus how to do it yourself. |
23:31 | < Rhamphoryncus> | Yeah, I have somewhat of an understanding of transformation matrices now |
23:32 | <&McMartin> | That said: VAO = Vertex... Attribute Object? shader is their generic word for a vertex/fragment transformation program that turns model-space coordinates/surface fragments into viewspace or screenspace things |
23:32 | | * McMartin had a 2.x crashcourse, but it didn't cover niceties like "how you get information from the CPU into the shader programs." |
23:32 | < Rhamphoryncus> | Enough that, with help from wikipedia to pick right combination sin/cos I was able to get my camera to pitch back and forth :) |
23:33 | | * McMartin nods |
23:33 | < Rhamphoryncus> | Technically it's a vertex *array* object |
23:33 | <&McMartin> | Watch out for gimbal lock~ |
23:33 | <&McMartin> | Oh |
23:33 | <&McMartin> | Those are old, I've used those. |
23:33 | < Rhamphoryncus> | but it's a meaningless distinction |
23:33 | <&McMartin> | VBOs are the things I haven't used. |
23:33 | <&McMartin> | Yeah, SVAF is based on compiled vertex/normal/texcoord arrays, which I believe VAOs are the generalization of. |
23:34 | <&McMartin> | Hell, SVAF itself was named for them: "Simple Vector-Array Format" =P |
23:34 | < Rhamphoryncus> | A vertex attribute is basically a format spec to read from your buffer. Format, stride, etc. The primary usage is to make a C struct (possibly packed) with the input arguments ("attributes") for each vector, such as position, colour, etc |
23:34 | <&McMartin> | The 2.x crash course is enough to teach me what I need to unlearn, anyway. |
23:35 | < Rhamphoryncus> | VAO used to have more functionality. opengl 3.1 strips off a lot of it |
23:35 | <&McMartin> | Can shaders declare their own persistent storage? |
23:36 | < Rhamphoryncus> | umm, there's something like that but very limited |
23:36 | | * McMartin nods |
23:36 | <&McMartin> | I have a heightmap thing that would fun to do and I'm wondering if there's going to be anything in the end besides lighting for the vertex shader to do. |
23:37 | < Rhamphoryncus> | A shader is conceptually a function but technically the arguments (or "attributes") look more like globals. Ditto the outputs, which are the inputs to the next stage |
23:39 | <&McMartin> | Yeah, I get rendering pipelines. |
23:39 | <&McMartin> | The Vertex and Fragment shaders are wholesale replacements of older, more complicated systems that are the ones I trained on, so that part I'm feeling p. OK |
23:39 | <&McMartin> | As for what they do in the large, that is. |
23:40 | <&McMartin> | As for what all these buttons are, that's the trick, yes~ |
23:40 | < Rhamphoryncus> | yeah |
23:40 | <&McMartin> | And almost everything I'd want to do in the old school and had to do in CPU it looks like in 2.x I still *do* have to do in CPU; some chatting elsewhere has informed me that this is because the things that I would have wanted to offload require use of "geometry shaders" |
23:41 | < Rhamphoryncus> | Yeah, geometry shaders are pretty new. I haven't learned what they're capable of yet though |
23:44 | | * Vornicus wants to see linear interpolation between LoD maps |
23:44 | <&McMartin> | Tesselation is part of that, yeah |
23:45 | <&McMartin> | What I wanted waws "automatic normal computation given a collection of ploys" |
23:45 | | Aeron is now known as EvilDarkLord |
23:45 | <&McMartin> | (polys) |
23:46 | <&McMartin> | (Basically, I want to hand the GPU a square grid of vertices and a height map and tell it "go to town" and have it compute appropriate vertex normals along with the lighting &c) |
23:46 | | Jasever is now known as AnnoDomini |
23:47 | < Rhamphoryncus> | hmm |
23:47 | < Rhamphoryncus> | You can probably achieve that through a bit of evilness |
23:48 | < Rhamphoryncus> | a vertex attribute contains offset+stride information. You could make them overlap |
23:48 | < Rhamphoryncus> | oh, that won't get you more vertices than entries in your heightmap |
23:50 | <&McMartin> | Yeah |
23:50 | | AnnoDomini [annodomini@A08927.B4421D.B81A91.464BAB] has quit [Ping timeout: 121 seconds] |
23:50 | <&McMartin> | What would have been boss is if (since it's a procedurally generated heightmap) I could have had the shader or a shader-like thing *generate and update* the heightmap as needed |
23:51 | <&McMartin> | Since the code in question was midpoint-displacement terrain, aka the plasma-fractal heightmap. |
23:51 | < Rhamphoryncus> | A geometry shader can create multiple output vertices for one input |
23:51 | <&McMartin> | Right |
23:51 | <&McMartin> | The problem here is that the vertices need to know about the locations of their neighbors. |
23:53 | < Rhamphoryncus> | "it is not adequate for tesselation purposes." |
23:53 | < Rhamphoryncus> | http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/geometry-shader/ |
23:55 | < Rhamphoryncus> | ... oh http://codeflow.org/entries/2010/nov/07/opengl-4-tessellation/ |
23:55 | < Rhamphoryncus> | Opengl 4 introduced three new pipeline stages between Vertex shading and Geometry shading |
23:55 | < Rhamphoryncus> | Tessellation Control: Is Programmable. Decides how often a patch is subdivided. |
23:55 | < Rhamphoryncus> | Tessellator: Is configurable. Takes the data from control and produces new primitives. |
23:55 | < Rhamphoryncus> | Tessellation Evaluation: Is programmable. Receives the output of the tessellator, can modify each output vertex. |
23:57 | < Rhamphoryncus> | geometry shaders were standard in 3.2 and existed as extensions to 2.x |
23:59 | | Anna is now known as rms |
--- Log closed Sun May 13 00:00:17 2012 |