Not A Livejournal
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
偉民's LiveJournal:
[ << Previous 20 ]
| Thursday, August 25th, 2011 | | 12:27 am |
I see a few posts drawing a contrast between the facebook name policy and the Google+ one. I guess they don't seem that different to me, since my facebook account was banned in mid-2007 for not using my real (probably "real to the government") name. It's still banned. 7/12/2007 3:37 PM: Hi, Fake names are a violation of our Terms of Use. Facebook requires users to provide their full first and last names (i.e. no initials). Impersonating anyone or anything is prohibited. Nicknames are only permitted if they are a variation of your first or last name. Also, nicknames cannot be used in replacement of your first or last name. The accepted format is as follows: FirstName 'Nickname' LastName. If you would like to use this profile again, just get back to us with your real name and we will reactivate the account for you. Thanks for your understanding, Chad Customer Support Representative Facebook | | Wednesday, August 24th, 2011 | | 3:12 am |
Since I am only thinking about coding (and travel arrangements) on the run-up to a demo event, I always forget that I'm about to spend time with some of the best people ever. Afterwards, I try to make a note about that... note to self: demoparties have best people ever.
I ran out of time and did not enter the compo at Evoke. One reason is: I developed on ATI hardware this time, and I have some kind of weird nvidia bug I can't figure out. It doesn't seem like I'm doing anything wrong... though I have been at fault for the overwhelming majority of bugs so far.
The bug is this: I have a fragment shader which is used to displace screen pixels. The screen pixels are read from a 2D texture, the displacement direction and amount is read from a 3D texture (and is animated by changing the depth coordinate in that texture). The part in question is like this:
#version 330 core
// FS_Break.frag
uniform sampler2D tx1; // a screen sized texture which is a capture of the screen color buffer
uniform sampler3D tx2; // a 3D texture containing displacement data
uniform float tx2z; // how deep in the 3D texture to read from
uniform float amount; // severity of effect. 0.0 = no effect.
layout(location = 0, index = 0) out vec4 Color;
in vec2 ouv1; // interpolated texture coordinate
void main() {
Color=texture(tx1,ouv1 + vec2(amount * texture(tx2, vec3(ouv1, tx2z)).rg - vec2(0.5,0.5) ) );
}
Works as expected on ATI. On my nvidia machine, it results in an empty screen. Messing around with it shows some very weird properties:
// correctly displays the screen sample
Color= texture(tx1, ouv1);
// correctly displays the attenuated displacement texture
Color = amount * texture(tx2, vec3(ouv1, tx2z));
// this is used in some more variations below..
vec4 nvbug = texture(tx2, vec3(ouv1, tx2z));
...
// blank screen.
Color= texture(tx1, ouv1 + amount * nvbug.rg * 0.0000000001);
// not blank.
Color= texture(tx1, ouv1 + amount * nvbug.rg * 0.000000000);
// this is the best one:
// replace either branch with Color = vec4(1.0,1.0,1.0,1.0) and it works as written
// but if both texture values are used, even if never combined or used at the same time, blank!!!
if(amount > 0.4) {
Color= texture(tx1, ouv1);
// Color = vec4(1.0,1.0,1.0,1.0);
} else {
Color = nvbug;
// Color = vec4(1.0,1.0,1.0,1.0);
}
So... that's driving me nuts. I thought maybe my textures were two different formats and that ATI was doing some pixel format conversion that NV wasn't, but that seems unlikely. Clearly the driver is optimizing out one or the other texture reference when it computes that it is unused. But what's wrong?? I guess I will go over my texture parameters one at a time tomorrow. | | Sunday, August 7th, 2011 | | 3:54 pm |
We are closing in on Evoke. Or, as I like to call it, "Next up: 64K PC Intro". I don't think I've discussed much what I have learned from participating in demo compos, but it's different then what you might think. The technological hurdles are considerable, but they are largely discretionary. You get as much challenge as you sign up for. The part that this exercises most, for me, is the ability to confront fear. The coding pressure as we finish out the last week of development before the compo is intense, but during this time I must focus, think, and complete the code. Looming over me at all times is fear. Fear of failure, of ridicule, but mostly of my own mediocrity. It is this spectre that I confront when competing in the demoscene. I don't know what to make, but I have to make it. I don't have any artistic taste, but I must make aesthetic choices. When there are other competitors, they are often the best in the world. Can I still operate in the face of certain failure? Well, that's what I'm practicing doing. They say that willpower follows a strength model (Baumeister, R. F. Vohs, K. D. Tice, D. M. 2007). The way to build it up is to exercise it. This has been my ten minute break, back to code. | | Monday, April 18th, 2011 | | 12:42 am |
I spent the whole day writing graphics code and all I have to show for it is this teapot. Which has holes in it all over the place.  It is a little big, huh? Well I spent all day on it. Enjoy my stupid utah teapot. | | Sunday, April 3rd, 2011 | | 11:47 pm |
I'm not an efficiency expert or anything but... I'm having some doubts that this internet thing is increasing our productivity at all! Well, check for updates tomorrow! And every hour after that! | | Tuesday, February 22nd, 2011 | | 9:29 pm |
"Do you have time to talk to me?" "Actually I'm a little bit of a hurry. I don't. Sorry." "What's your favorite candy?" "I don't know. Kit kat?" "Let's say you have 1440 kit kats." "Okay." "Would you give me 5?" "Of course." "Well you have 1440 minutes in your day, and I'm just asking for 5." ... "This was a very special kit kat. Bye." Thanks, clipboard holding volunteer, for the fallacious logic. If you had 1440 kit kats, and 480 of those disappear while you sleep, and 480 of them are taken by work, and the remaining 480 kit kats must be allocated to everything else in your life that is worth a kit kat, and once they are gone, you can never get any more kit kats... would you give some incoherent stranger with an agenda 5 of them? | | Sunday, February 20th, 2011 | | 6:37 am |
Ok, demoscene talk given! I'll post a video when I get one (They recorded it. We'll see if they decide to splice in my slides or what. I'll do it, if not.) It went smoothly, though the speakers they dug up for me were of the humorously tiny variety that usually go with computers. The Q+A went on for a little longer than expected, half an hour. One interesting thing the designers came up with was an idea for a "steampunk demo" (though they did not use those words), wherein video effects were created with a mechanical TV for the rasterizing and display device. Yes, I learned about a new thing: "Nipkow disk." Located two lurking scene enthusiasts, contact infos exchanged. Now I can stop stressing about talking and concentrate once more on the production for Evoke. | | Sunday, January 30th, 2011 | | 11:10 pm |
I'm going to give a little talk about demos and the demoscene a couple weeks from Thursday. I just finished assembling a highlight reel for it. I'm a little anxious. Eek. | | Monday, January 17th, 2011 | | 1:17 pm |
I needed a more complicated mesh than I knew how to make in Wings. I decided to learn how to use Blender (inspired by Zagupi/HBC's HBC-00008: How to use Blender). Blender's UI is not exactly intuitive. You definitely need to watch a tutorial video in order to get started. The effective workflow is centered around keyboard use. Reading the docs is super boring, so I watched the very first tutorial to find out what the main mouse and UI structure were, then switched to a tutorial about making something, and followed along haltingly, pausing whenever I needed to find a function. I later discovered the tutorial was post-2.5 and I was using the "stable" 2.49, right before a major UI overhaul. Oh well, I learned a lot by looking around for those nonexistent functions. Also, it's nice to see someone else's logical structure imposed on 3D rendering. It helps mentally cluster the kinds of things that wind up being done in textures vs. what winds up as a post-process effect, or a lighting effect, especially you can push a lot of stuff from one to the other if you're trying to do something specific. Blender is an open source product, but it is much much nicer and more stable than the open source things I'm accustomed to. It's as if it were a commercial product that had been worked on for years by dedicated professionals and then was open sourced when funding ran out, but the original lead continues to work on it. (Ha ha, yes, I already found out that was indeed the case.) | | Thursday, January 6th, 2011 | | 7:52 am |
Fixed my blue oval problem. Wasn't a bug in my new effect, was a bug in the rest of the scene. Doops. Crap, times up. | | Wednesday, January 5th, 2011 | | 7:33 am |
More demo code! A new effect: Today it just fills my screen with a big blue oval, because of a bug. What's the bug? If I knew that, my screen wouldn't have an oval on it. Graphics bugs are funny, sight gags by definition. You spend an hour or so typing what looks like organized functions, finally run it and then... huge oval. Ok, time to get ready to go to work. Current Mood: 8 | | Tuesday, January 4th, 2011 | | 5:36 am |
Made it so my glow isn't squished into the aspect of the display. Derp. Fixed duplicates of resolutions in the resolution selector. Made some new effect code, refactored it, refactored it again. Felt kind of good about it. Realized that coder colors look like someone barfed a box of crayons all over the screen. Worked on a nicer palette. I'm on a browsing diet for January, so I can't stay long. I'm logging all my internet usage.. it's mostly for looking things up, though I'm using books and telephone calls where possible. I feel like there was something else I wanted to write up here. Oh well, time's up. | | Friday, December 31st, 2010 | | 3:11 am |
VS projects open while democoding: 1) Last year's 64k demo 2) Current 64k project 3) A 1k project (Wow... not a whole lot fits in there) 4) Auld's OpenGL 1k src 5) IQ's project with frameworks for every kind of small production 6) Martti's demo from last Evoke I don't copy code wholesale, and it's not very portable anyway. I just want to know how different people have solved the problems I'm looking at. Some of this stuff is only documented by code that people have written. Also, after I started learning Scala, my code sprouted loop-running functions that take function pointer parameters. It's all like, void forEachDevice( void(* pFunc)(void *, PDISPLAY_DEVICE), void *pFuncArg ) Which looks insane and retarded. But at least I didn't have to write that device enumeration loop twice with different stuff in the middle! Okay okay I'll rewrite it as objects. sheesh Added: #ifdef INSANE_AND_RETARDED | | Wednesday, December 29th, 2010 | | 11:13 pm |
I feel extra-productive on my newly-reinstalled Windows machine. Partially because on a new install (of pretty much any OS) there isn't any automated BS going on in the background or while loading file context menus, wasting time. Everything responds quickly. Partially because I didn't install Flash, so I can't watch youtube videos or play flash games. (Or shop on the Native Instruments website, but I probably shouldn't be there anyway.) | | 1:14 am |
Hooked up all my music softwares again, wrote a v2 song, hooked it up to 64k democode frame, everything works in Win7.. I think. Though I don't really have a 64 bit exe compressor. Does it work in any other windows? I dunno!! Oh, and then my computer pulled an Inigo Montoya on me: "I admit it. This code is too much for me." "Then why are you smiling?" "Because I know something that you do not know." "And what is that?" "I am running in software-rendered mode." (switches to hardware accelerated mode) *foosh* :O | | Tuesday, December 28th, 2010 | | 1:34 am |
...just like eeeevery dev cycle starts with reinstalling every single one of your blasted development tools, every rose has its thorns. No, honestly I got through years and years of network service development and I only ever had to install my development tools every 2 years or so! But this Windows development stuff... well... it occurs on Windows machines. And I'm just no good at keeping them bootable, long term. So that's what I spent today doing. First, attempting to repair a Windows 7 install that got a rotating selection of blue screens on boot, ranging from the driver-hating "IRQL_LESS_THAN_OR_EQUAL.." to the quickly-disappearing "driver is mismanaging system PTEs". With some plain old no-message ones in there for good measure. This time I'm blaming Apple and their windows bluetooth drivers, partially because the bluescreens persisted after reinstall/PRAM-zap, but went away when I removed the bootcamp utility which enables, among other things, the bluetooth radio. Booting the partition from VMWare worked fine. Anyway, I'm back in business, I guess. I would get a separate computer that is only for windows development if I didn't hate computers so much right now. | | Saturday, December 25th, 2010 | | 6:58 pm |
| | Wednesday, December 15th, 2010 | | 1:55 am |
It's like working at McDonalds
I read about kinokofry's "standing desk", then I checked out a bland NYT article about them. I enjoy my adjustable height desk at home a great deal, and our desks in the office raise and lower with this model-T like crank, so I decided to crank it up and stand in front of my desk at work all day. It does definitely make me more attentive! Partly because standing idle causes my feet to get sore. This induces lots of pacing, body shifting, and making my nearby coworkers uneasy. My desk didn't raise up enough for it to really be tenable long-term, I need a booster to elevate it about another 8". Every single person that saw me doing this said the same thing. "Do you have back problems?" NO, I'm just prone to experimenting. Also, my desk had that crank feature. I love using features. Other experiments today: wrote a servlet in scala built with maven. This actually worked! (?? (!! (!??!?!))) I can tell the Scala is juuuust starting to take hold in my brain. 3 hours is probably enough of that for one night. zz, folks. Current Mood: feature | | Monday, October 11th, 2010 | | 11:37 pm |
Tonight I decided a good incremental goal would be to make a DirectX9 effect run in a screen saver. Elderly readers will remember that I have made windows screensavers in the past ( SnowBuh, OontzSaver) in order to learn things. Anyway, I got it running tonight. It's a very boring screensaver (features: a vertex buffer, and whatever the DX equivalent of OpenGL fixed function pipeline lighting is), but I've got a couple ideas that need development through iteration, and this kind of crap is my favorite way! Those of you on THE FACEBOOK are already being subjected to 31 days of unchecked andr00 beard growth. Those of you not, well, you're missing out on some pretty scruffy days. The name of the game is "octobeard," and it doesn't mean growing a beard with 8 points. Rule 1: Do not talk about itching. Rule 2: DO NOT TALK ABOUT ITCHING. Rule 3: If someone shaves or trims, Octobeard is over. ... Rule 6: No neckbeards, no wolfman-eye-socket-beards. Rule 7: Octobeard will go on as long as it has to. But that's probably only until November. Rule 8: If it's the last day of September... you HAVE to shave. Yes. Five of us at work are doing this. To quote one of the other guys, "It's like working on the set of Miami Vice. Lots of investigations and stubble." | | 1:00 am |
Actually there are something like 43 updates between the last public post and the one before it. They were just all "Friends Only". But, they are largely about programming. So if you find that boring, no big loss. On that topic, I am (as ever) working on code in my spare time. This time, using DirectX 3D instead of OpenGL. It is kind of startling how much better the shader debugging tool is for DX3D, compared to what you have to use for OpenGL. And I don't have to translate every shader program I read about from Cg or HLSL to GLSL - they just work as-is. |
[ << Previous 20 ]
|