code logs -> 2011 -> Mon, 24 Oct 2011< code.20111023.log - code.20111025.log >
--- Log opened Mon Oct 24 00:00:10 2011
--- Day changed Mon Oct 24 2011
00:00
< Derakon>
So you didn't think hard enough to try it and see?
00:00
< celmin>
Just did that.
00:00
< Derakon>
And did it work?
00:00
< celmin>
Didn't seem to work, though maybe I just translated by the wrong vector...
00:01
< Derakon>
I have to think that all this order-of-operations stuff for 3D transformations would be best taught by giving the students a copy of POV-Ray with a basic scene set up.
00:02
< celmin>
Ah yes, no wonder it didn't work; the translation vector was 0.
00:03
< celmin>
Turns out the real issue is that my axes are drawn in the wrong place...?
00:03
< celmin>
Somehow?
00:05
< celmin>
Or wait, I think the perspective just confused me.
00:09
< celmin>
Well yay, it all seems to work now. Next is viewing transformations... I don't think he expected me to do those manually...
00:10
< celmin>
(Okay, I'm actually not quite sure rotating the cube on an axis intersecting the centre of two opposite faces is working correctly, but it looks close enough for now.)
00:22
< celmin>
...whoops, my scale is with respect to the wrong point. <_<
00:22
< celmin>
At least it's easily fixed.
00:24
< celmin>
...also apparently it's one-way.
00:24
< celmin>
Wait why do I have a negative scale factor.
00:26
< celmin>
Well that's fixed, but somehow the scale is cancelling translations...
00:28
< celmin>
...first argument to gluPerspective seems to behave as a scale factor...
00:32 * McMartin actually tends to use GluLookAt, now that he thinks about it.
00:32
< McMartin>
Wait, but that's for something else.
00:32
< celmin>
I have both in there.
00:32
< McMartin>
Yeah, so, perspective stuff is wacky, and has to do with field of view as well
00:33
< McMartin>
You may recall this from the endless bitching that the Glorious PC Gaming Master Race does about console FPS games, which tend to have a smaller FOV.
00:33
< celmin>
I think I crashed it...
00:36
< celmin>
Using explicit destruction followed by placement new probably isn't the best strategy, but it works. <_<
00:37
< McMartin>
... are you attempting "morphing" here?
00:38
< celmin>
Implementation of the "reset" button.
00:40
< celmin>
What do you mean by "morphing"?
00:45 * sshine used to play Quake I with FOV 140.
01:01
< McMartin>
"morphing" is where you take a chunk of memory that was originally one object and transmute it into another object.
01:15
< celmin>
Well, I'm destructing and constructing the same type.
01:17
< celmin>
Somehow I managed to find a use for pointers-to-members in here.
01:18
< celmin>
...uh, there's an edge missing in my pyramid... o.O
01:20
< celmin>
At some point tonight or tomorrow morning I need to figure out stereoscopic viewing...
01:22
< celmin>
Oh, he has sample code for that, good.
01:41 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [[NS] Quit: Z?]
02:10 Attilla [Some.Dude@Nightstar-f29f718d.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
02:45 Kindamoody[zZz] is now known as Kindamoody
03:26 cpux [cpux@Nightstar-d03759e4.il.comcast.net] has joined #code
03:33 Kindamoody is now known as Kindamoody|coding
04:17 * Derakon sends an email to pyopengl-users complaining about "from foo import *".
04:17
< Derakon>
Whee~
04:20 cpux|2 [cpux@Nightstar-d03759e4.il.comcast.net] has joined #code
04:23 cpux [cpux@Nightstar-d03759e4.il.comcast.net] has quit [Ping timeout: 121 seconds]
04:34
< Derakon>
"Legacy
04:34
< Derakon>
OpenGL included functions which would manipulate these matrices via "translation", "rotation", "scaling" and the like. Modern OpenGL programmers are expected the calculate the matrices themselves (or have a library that does it for them)."
04:34
< Derakon>
I really don't understand why this is considered to be progress.
04:34
< Derakon>
"Look, now you have to do more stuff manually! Isn't this awesome?"
04:34
< McMartin>
Easier to directly realize in hardware.
04:34
< kazrikna>
OpenGL is a relatively low level library
04:35
< Derakon>
That doesn't mean it can't provide APIs to do that matrix calculation process.
04:38
< McMartin>
That's what GLU should be for -_-
04:41
< McMartin>
Though I suspect DrawTeapot is still part of the standard library too -_-
04:43
< McMartin>
Really, though, you should be treating legacy OpenGL as an emulation layer these days anyway - it is to the Playstation 1 what framebuffer programming is to the SNES.
04:43
< Derakon>
I just want to get decent-looking results without having to fill my program with a crapton of low-level stuff.
04:44
< Derakon>
Because really, I'm just trying to render some cubes.
04:44
< Lingerance>
Minecraft clone?
04:45
< Derakon>
No, I aim to have actual gameplay~
04:45
< Derakon>
(3D roguelike, is the idea)
04:45
< McMartin>
GluDrawCube~
04:45
< McMartin>
"Deprecated" does not mean here what it means in Java.
04:46
< Alek>
a 3d roguelike out of cubes forming the ascii characters? >_>
04:46
< Derakon>
No.
04:46
< Lingerance>
Language and license?
04:46
< Derakon>
Python, haven't decided.
04:47
< Derakon>
Realize that I have just this side of zero code written so far.
04:47
< kazrikna>
Heh, you know, I remember doing those transformations and such by hand in POVray early on too.
04:47
< McMartin>
Given that this is your goal, trying to use the most modern, least widely implemented versions of the graphical standards seems like a bad move.
04:47 * Lingerance was interested in an MC-clone with RPG features, but would prefer C/C++ with JS scripting.
04:47
< Derakon>
McM: I can render a cube. An unshaded cube.
04:47
< Derakon>
Trying to get lighting redirects me into learning to use shaders.
04:48
< Derakon>
And from there the rabbit hole never stops.
04:49
< McMartin>
Legacy OpenGL lighting is shit
04:50
< McMartin>
That said, look for tutorials on setting vertex normals.
04:50
< McMartin>
And materials
04:50 * McMartin learned from, like, Actual Books, so.
04:50
< McMartin>
In this case, the fourth edition of the OpenGL SuperBible.
04:50
< Derakon>
I have the Red Book around here somewhere, and I'm pretty sure it's online too.
04:50
< McMartin>
That helped me... less.
04:50
< McMartin>
But it will still be better than whatever you *are* looking at.
04:50
< Derakon>
It's just frustrating how conflicting all the tutorials all are.
04:51
< McMartin>
Which appears to be geared to the question "I want to write my own version of Source/Unreal Engine 3"
04:51
< McMartin>
As opposed to "I'd like to do something at the level of Descent. Maybe. Possibly a little simpler."
04:51 * Derakon nods.
04:52
< Derakon>
I don't even need realistic lighting; it'd be neat but it's hardly necessary.
04:52
< McMartin>
I do think modern consensus is that doing everything with vertex information and then interpolating between them was a 20-year detour, though.
04:52
< McMartin>
Yeah, this is less "stock OpenGL lighting is unrealistic" and more "if you have objects lined up to look vaguely concave half the screen goes black"
04:52
< celmin>
The teapot is in GLUT, not GLU.
04:52
< McMartin>
Sable had to do its own lighting code to get the terrain to look right, IIRC.
05:23 Kindamoody|coding is now known as Kindamoody
05:38 cpux|2 [cpux@Nightstar-d03759e4.il.comcast.net] has quit [Ping timeout: 121 seconds]
05:56 You're now known as TheWatcher
06:09 * TheWatcher readsup
06:11
< TheWatcher>
Dera: textures, lighting, blending, legacy-style: http://nehe.gamedev.net/tutorial/lessons_06__10/17010/
06:20
< TheWatcher>
Although, unless you're doing this as a Learning OpenGL Exercise, I'd suggest looking into engines like OGRE, Crystal Space, or Panda3D
06:21
< TheWatcher>
(the latter of which is python-friendly, IIRC)
06:23
< celmin>
...wait, I replace pi/2 with 90 and suddenly it magically works?
06:24
< ToxicFrog>
celmin: radians are not degrees; make sure you're using the same unit the library is.
06:25
< celmin>
"The library" in this case happens to be <cmath>
06:26
< ToxicFrog>
Ok, that's weird, because:
06:27
< ToxicFrog>
DESCRIPTION
06:27
< ToxicFrog>
The sin() function returns the sine of x, where x is given in radians.
06:27
< ToxicFrog>
And this holds for the rest of <math.h>
06:27
< celmin>
Exactly.
06:27 Derakon is now known as Derakon[AFK]
06:27
< ToxicFrog>
What are you using the results with?
06:27
< celmin>
Making a rotation matrix for OpenGL.
06:27 Stalker [Z@2C3C9C.B2A300.F245DE.859909] has quit [[NS] Quit: Into the hole again, we hurried along our way, into a once-glorious garden now seeped in dark decay.]
06:28 Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code
06:28
< ToxicFrog>
If, say, you're doing sin(foo) and then passing the result to something that does asin(bar) and expects a result in degrees, that would explain it.
06:28
< celmin>
Well, not just rotation.
06:28
< ToxicFrog>
IOW, check what OGL uses, not just <math.h>.
06:28
< ToxicFrog>
Also, done marking assignment 1:
06:28
< celmin>
Eh, well, somehow this works, so I'll stick with it.
06:28
< ToxicFrog>
> summary(marks)
06:28
< ToxicFrog>
Min. 1st Qu. Median Mean 3rd Qu. Max.
06:28
< ToxicFrog>
0.00 1.25 2.00 1.80 2.00 5.00
06:28
< ToxicFrog>
;.;
06:28
< celmin>
Also, this means my assignment is 99% done, so yay!
06:28
< ToxicFrog>
(this is out of 5)
06:29
< celmin>
Well at least someone got perfect.
06:31 * celmin goes to bed.
06:31 celmin [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: Client has been nuked. Client is no longer functional.]
06:44 * TheWatcher eyes those results, >.<s
06:57
< Rhamphoryncus>
When finally turning on the backup drive 6 months ago, and it doesn't appear immediately, check the most obvious thing: is the SATA cable loose?
07:34 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code
07:48 Kindamoody is now known as Kindamoody|out
08:29
< Rhamphoryncus>
But apparently half a terabyte takes a while to backup. I don't think I'll be doing the upgrade tonight.
08:33
< McMartin>
ToxicFrog: If I am in a bad mood, I'd say "Aw, your median is off by half a point" >_>
08:34
< McMartin>
It's pretty pro how the median is *also* the third quartile, though.
09:04
< Rhamphoryncus>
Oh hey, it's gotten past my D&D torrents and into my porn!
09:05<~Vornicus> http://imgur.com/gallery/zyQIN silliness
09:29
< jerith>
http://i.imgur.com/ThIqI.jpg
10:29
< Rhamphoryncus>
jerith: heh
10:58 Attilla [Some.Dude@Nightstar-f29f718d.cable.virginmedia.com] has joined #code
11:08 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has joined #code
11:38 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
12:29 Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Client exited]
12:30
< AnnoDomini>
http://www.geeksaresexy.net/wp-content/uploads/2011/09/win82.jpg
12:30
< AnnoDomini>
(Though I do object to the labels for Win95 and Win98.)
14:00 AnnoDomini [annodomini@FFB3F3.4C5BE8.2014E2.DC0864] has quit [[NS] Quit: leaving]
14:07 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection]
14:13 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code
14:27 Kindamoody|out is now known as Kindamoody
16:30 Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [[NS] Quit: Into the hole again, we hurried along our way, into a once-glorious garden now seeped in dark decay.]
17:34 Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code
--- Log closed Mon Oct 24 18:21:22 2011
--- Log opened Mon Oct 24 18:21:32 2011
18:21 TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code
18:21 Irssi: #code: Total of 22 nicks [1 ops, 0 halfops, 0 voices, 21 normal]
18:22 Irssi: Join to #code was synced in 41 secs
18:43 jeroid [jerith@687AAB.1BBF0C.B71F50.81076B] has joined #code
18:44 Derakon [chriswei@510B1D.620261.5E24F5.C009AE] has joined #code
19:43 Kindamoody is now known as Kindamoody[zZz]
20:01 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
20:29 jeroid [jerith@687AAB.1BBF0C.B71F50.81076B] has quit [[NS] Quit: Bye]
21:40
< Derakon>
This morning when I came in to work, I thought I'd come up with the solution to a problem I'd had last week.
21:40
< Derakon>
As I worked on implementing it, I encountered all the reasons I'd forgotten over the weekend for why that solution wouldn't actually work.
21:40
< Derakon>
Hooray memory.
21:41
< celticminstrel>
XD
22:05
< jerith>
Been there. Done that.
22:06 * gnolam arghls at USians and their silly units.
22:07
< celticminstrel>
Oh, someone else who uses the term "USians".
22:08
< gnolam>
A LIST OF SPECIFIC ACTIVITIES IN SANE UNITS. THAT IS ALL I ASK.
22:09 * Derakon measures Gnolam's fuel efficiency in rods per hogshead.
22:09 * TheWatcher presents gnolam with a list of morris dance steps measured in microparsecs
22:09
< McMartin>
It's not *our* fault that everyone else uses the same words for entirely different quantities.
22:09
< McMartin>
And I don't even mean the Imperials.
22:11
< McMartin>
Also, base 12 is totally sane, which is why even you people using Communist units apply it to time.
22:11 * McMartin has no particular comment on using force as the core unit of everything.
22:13
< celticminstrel>
Uh, time is base 60. <_<
22:13
< Derakon>
60 % 12 = 5.
22:14
< McMartin>
60 is even better than 12, for the same reason >_>
22:14
< Derakon>
Also, 24 hours in a day.
22:14
< celticminstrel>
What's the relevance of 60%12=5?
22:14
< McMartin>
Which is traditionally organized into two groups of 12.
22:14
< McMartin>
The reason 12 is sane is the same reason 50 is sane - it has a ludicrous number of consecutive divisors.
22:14
< Derakon>
CM: I'm saying that 60, being a multiple of 12, can be thought of as being in base 12 if you like.
22:14
< McMartin>
Er, 60 is sane.
22:14
< McMartin>
50 is kind of the worst of all worlds.
22:14
< Derakon>
1 * 2 * 5 * 5!
22:15
< celticminstrel>
Heh, that'd only have 5 and 2.
22:15
< McMartin>
You know what else only has 5 and 2?
22:15
< Derakon>
10!
22:15
< McMartin>
100.
22:15
< McMartin>
But at least you can get 4 out of it.
22:15
< Derakon>
Well, 10! has 2,3,5 and 7~
22:15 * TheWatcher has always wondered about how the divisions of time came about
22:15
< Derakon>
Blame the Babylonians, IIRC.
22:15
< McMartin>
Pretty much, though the Romans may do it too.
22:15
< TheWatcher>
*shrug* works for me!
22:16
< Derakon>
They did everything in base 60, and had the math chops to promulgate early calendars, clocks, etc.
22:16
< McMartin>
See also: pre-decimalization UK currency, which was also bace 12.
22:16
< McMartin>
*base 12
22:16
< TheWatcher>
(and full of spiders)
22:16
< McMartin>
Yeah, despite admitting a place for inch/yard divisions, I have no love for the psd system.
22:16 * Derakon tips TW happence.
22:17
< celticminstrel>
psd?
22:17
< celticminstrel>
Photoshop? :P
22:17
< McMartin>
also LSD
22:17
< TheWatcher>
Pounds, Shillings, Pence (d)
22:17
< McMartin>
Pound/Libra, Solidus, Denarii
22:17
< TheWatcher>
heh
22:17
< celticminstrel>
Ah.
22:17
< McMartin>
See also the lira, the livre, and many other pre-euro currencies, most of which are most directly Rome's fault~
22:17
< TheWatcher>
(bloody romans)
22:18
< Derakon>
(What have they done for us, anyway?)
22:18
< McMartin>
(besides the aquaducts and the roads and the etc.)
22:19
< TheWatcher>
(<insert Life of Brian quote here>)
22:20
< McMartin>
(In California, s/the Romans/the gummint/ and you can use it basically word for word)
22:20
< McMartin>
(*various mutterings about how people seem to believe in The Infrastructure Fairy*)
22:21
< TheWatcher>
On the road to nowhere with that one...
22:21
< Derakon>
Oh, Alaska.
22:22
< TheWatcher>
Quite.
22:22
< Derakon>
(If you're not familiar, one Alaskan senator famously got federal funds to build a Bridge to Nowhere, a massive span to connect some tiny hamlet to the mainland)
22:23
< TheWatcher>
(... no, I was not. Also 9_9)
22:23
< McMartin>
(The bridge was only half finished)
22:23
< McMartin>
(Alaska could *use* some bridges like that given that their capital is not reachable by land)
22:29<~Vornicus> (360 is "sane" for angle because it's divisible by 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 18...)
22:29
< McMartin>
(Given the other sane option is fucking transcendental...)
22:29<~Vornicus> (240 is imo more sane, because all integer angles in a 240-degree circle are constructible)
22:30
< McMartin>
("all else is the work of man" my eye)
22:30
< Derakon>
Hey look, 240 is a multiple of 12!
22:30
< McMartin>
SO is 360~
22:30
< Derakon>
...er. Right.
22:30
< celticminstrel>
Yeah, why does everything use radians anyway?
22:30
< Derakon>
I knew that.
22:30
< McMartin>
Constructability is stricter than factors.
22:30<~Vornicus> celmin: because they're one of the two natural measures of angle.
22:30
< McMartin>
celticminstrel: The math on radians works better.
22:30<~Vornicus> (the other is the "circle")
22:30<~Vornicus> (which has its own problems)
22:30
< McMartin>
To wit: If you do sin x, where x is in radians...
22:31
< McMartin>
and then take the derivative of it...
22:31
< McMartin>
you get cos x.
22:31
< McMartin>
A nifty trick.
22:31
< Derakon>
Mind, if you listen to some people, we should be using tau instead of pi.
22:31
< Derakon>
(where tau = 2pi)
22:31<~Vornicus> if you did it in degrees, you get pi/180 cos x
22:31
< celticminstrel>
Vornicus: Sure, but how does that explain why programming libraries use it?
22:31<~Vornicus> It's also a hell of a lot easier to calculate; there's a simple power series for it.
22:31
< celticminstrel>
Derakon: That really doesn't make a difference.
22:31
< McMartin>
^---
22:32
< McMartin>
You can compute the radian versions in hardware.
22:32
< Derakon>
It's semantics, CM, but sometimes semantics are useful.
22:32
< celticminstrel>
Sorry, did I get in the way or were you talking to me?
22:32<~Vornicus> And you can use the radian version when handling complex numbers; you can't use the degree one.
22:32
< McMartin>
By doing the power series until you hit your precision limit.
22:32
< McMartin>
celticminstrel: You got in the way ;-)
22:32
< celticminstrel>
Ah, I see.
22:33<~Vornicus> Also, when you use radians, you'll also get solutions to differential equations, with only the solution values coming in.
22:33<~Vornicus> (also: what's the length of an arc of a circle with radius r, that covers angle a? well, if your angle is in radians, it's r * a.)
22:36<~Vornicus> (constructability: you get a power of 2, and one each of 3, 5, 17, 257, 65537, and you can multiply them together. That portion of a circle is a constructible angle.)
22:39<~Vornicus> http://www.wolframalpha.com/input/?i=taylor+series+of+sin%28pi+*+x+%2F+180%29 <--- power series of sine, in degrees; you keep adding terms on (in the pattern) until you have enough precision. http://www.wolframalpha.com/input/?i=taylor+series+of+sin%28x%29 <--- same thing, in radians. As you can see, the latter is a lot nicer.
22:44<~Vornicus> and now that you've been dogpiled on, celmin, is there anything else you'd like to know. :P
22:45
< celticminstrel>
Yes! What is the meaning of life? :P
22:45 You're now known as TheWatcher[T-2]
22:46<~Vornicus> To do math, ovciously
22:46
< celticminstrel>
Heh.
22:47 You're now known as TheWatcher[zZzZ]
22:48 * gnolam found what he was looking for in a data sheet he forgot he had.
22:48
< gnolam>
Heh.
23:49 * Derakon mutters at Python's subprocess, which is AFAICT not inheriting environment variables.
23:49
< Derakon>
(subprocess = module for invoking commandline programs)
23:50
< Derakon>
Though the docs say it's supposed to inherit properly. Bah.
23:50
< McMartin>
Do you have to manually set the environment variable?
23:50
< gnolam>
You hold it down and I'll curb-stomp it. :P
23:50
< Derakon>
McM: this is a bit confused, but...
23:50
< gnolam>
Yes. My dislike for that module is that strong.
23:50
< Derakon>
There's setup_Priism.sh, which you run in order to get access to the Priism commandline.
23:51
< Derakon>
So I have a script which runs my jobs for me, one at a time.
23:51
< Derakon>
It creates a shell script, which uses setup_Priism.sh, then runs a single job.
23:51
< McMartin>
Urk. Is this something you'd normally source?
23:51
< Derakon>
Yes.
23:51
< McMartin>
Pretty sure that sourcing stuff is just going to fuck you, and for once it won't be Subprocess's fault
23:51
< Derakon>
That single job, in this case, is actually another "iteratively do jobs" thing,.
23:52
< Derakon>
And while I had expected those sub-jobs to inherit the changes created by sourcing setup_Priism.sh, they don't appear to be doing so.
23:52
< McMartin>
Hrm.
23:52
< McMartin>
Is there any setuid jackassery going on?
23:52
< Derakon>
No.
23:53
< McMartin>
ISTR you're on OSX too, which has subtle variations in how subprocess inheritance works, too.
23:53
< gnolam>
Oh hey, Wikipedia's apparently started supporting HTTPS in a sane way now.
23:53
< Derakon>
Actually this is being run remotely via SSH, on a Linux box.
23:53
< McMartin>
mm
23:53
< McMartin>
In that case, yeah, that should work, from the basic description, though I may be constructing it wrong in my head.
23:53
< Derakon>
I wouldn't be surprised. It's a pretty tangled web.
23:54
< Derakon>
But at least it's a commented tangled web. >.>
23:54
< jerith>
Do the comments lie
23:54
< jerith>
?
23:54
< Derakon>
Oh, well. Guess I'll just source setup_Priism.sh before each sub-job too.
23:55
< Derakon>
No, they don't!
23:55
< Derakon>
Or if they do, when I catch them at it they get re-educated.
23:55
< jerith>
Were they written recently?
23:56
< Derakon>
Comments are written at the time of creation/modification.
23:56
< jerith>
I tend to undercomment because anything not semantically relevant tends to get stale.
23:57
< Derakon>
Per the stats I ran on Friday, this program is about 17% comments and 17% whitespace.
23:57
< jerith>
(I also got into the habit of completely ignoring comments in a couple of codebases where they were generally misleading.)
23:57
< Derakon>
Which seems a bit heavy on whitespace, but I guess that's what I get for having two blank lines between each function.
23:58
< jerith>
pep8!
23:58
< Derakon>
(And three before/after classes)
23:58
< jerith>
That sounds like the Twisted standard.
23:58
< Derakon>
Uh, could be. *shrug*
23:59
< jerith>
We have pep8 in our CI builds.
23:59
< jerith>
Also pyflakes.
--- Log closed Tue Oct 25 00:00:46 2011
code logs -> 2011 -> Mon, 24 Oct 2011< code.20111023.log - code.20111025.log >

[ Latest log file ]