JF make 171
JF Nav
JF Nav
Creation Date: 2002-07-11
Greetings once again my fellow human beans. ^_^ I'm back today with another Making Of JF Page. The lesson today is to follow up on what you hate yesterday. I was saying that all those developers who make cel-shaded stuff make poor quality stuff. So I went about proving it. I downloaded the nVidia Cg Shader Toolkit. At 70 MB, it's a bad download, since the compiler is 4 MB and the Browser is 4 MB, you'd think that the toolkit would be somewhere around 10 MB max. But each effect has a full program associated with it. It would seem like they could make it easier, but they don't. The way that I downloaded it was to get the compiler and browser, then the browser downloads the toolkit in parts. That's a bad thing because the toolkit is 70 MB compressed. That means in uncompressed parts, it's about 140 MB. So now what to do? I let it download a bunch of stuff and I got my cel shader, so I stopped it. I missed out on a bunch that I want, but I'm not patient enough for a 140 MB download of simple demos. The cel shading demo produced the two images above, so you can see a bit of what it's about. Let me tell you what it's about. The fact that it's purple and textureless is because it uses a vertex shader and a 1d texture to produce the shading effect. This can be remedied by making the 1d texture be the secondary texture. My video card does that, so all I have to do is program it. There inlies one of the two main problems. I don't understand Cg any better than I understood the assembly version of it. I'm learning, but not very quickly. I may have a cel shader in another program (definately not AltSci3D Manga Director 1.0 VB, possibly AS3DMD 2.0 CPP in the next few months, more likely AS3DCg 1.0 CPP in a few weeks). The other problem is, as you can see, there is no animation. Notice that DA11 is in the trademark Jesus Christ pose. It is possible, but I don't know if it will require another vertex shader or the current AltSci3D Manga Director animation system. I have an inkling that DirectX8 uses vertex shaders for its skinned meshes and lighting. What else could it be using, right? There's only one GPU that I know of. =) I did like two other things that I haven't seen before. The Grass demo was spectacular. Kinda. If it was swaying more and if it didn't slow down to 10 fps, it'd be cool for ... Demos... Really why would you want grass in a video game? Anarchy-Online does a pretty good job at doing patches of grass using cris-crossed triangles. It's sweet. If you play, you know exactly what I mean. The other way to do grass is a texture. It's not trivial to get it right, but a few video games that have grass have pretty decent grass. One of these pictures is not like the other. If you chose the non-purple one, your wrong. The one one the right is a different mesh from the other two. Can you tell? Of course you can! Because the other two have about 11,500 more triangles than the one on the right. That's a lot of fscking triangles. You can see how round it is compared to the other. I used Microsoft's MeshView for DirectX8.1 to make an N-Patches mesh. I just use this little scroll bar on the right to increase the number of triangles and it does all the smooth curvature stuff. I like it, but I don't like high-polygon meshes. My graphics card only does 1M triangle per second. Do the math and you see that five of those meshes (like in JF, for example) slows my computer to 15 fps. That is bearable, but not cool. I could go increase the frame rate by putting in less triangles. So there's a balance that I have to work. Of course, I am limited by more than just final poly count. I'm also limited by MilkShape3D's speed. It's not a big limit, but it slows to 5 fps when I have 20000 polygons no matter how fast my GPU is. Remember how I told you about the software vertex processing. So if I make a model like this one, it will be uneditable. I have to edit the texture, vertex placement, normal groups, and animation before that and I have to rely on MeshView to do it right. I can tell you that I'm not thrilled by that. This is the third mesh that MeshView has ever N-Patched successfully out of twenty and about ten hours of work. It requires perfect normals to work and that's a tough order when I rely on my shoddy knowledge of MilkShape3D and MilkShape3d's DirectX exporter. I can't complain, but it's been a long time coming to where I am. Going further seems like a bad idea. I'm having a hard enough problem doing what I'm doing now and that's not much. One interesting thing that should be a no-brainer is that the cel-shaded pictures alone are only a 17kB PNG with 16 colors. The Making Of Page Picture above is 104kB. That means that the nVidia logo and the gradient shaded is 87kB. PNGs work really well with simplicity. JPGs are better for gradients if you don't mind a bit of jaggies. *shrug* It's an interesting idea. Digitally perfect cel-shaded 3d images should be extremely low lossless size.


The moral of the story, though is that throwing money at a problem is like throwing money at a toilet in every way. I didn't spend any money today. I did half of one of the many things that I said yesterday. I said that I would make $50 before I started work on any other project. I made $35 and I've set myself up to make the other $165 in a week's time. I like high paying jobs even if they don't pan out. Wait, I take that back. I feel that money is an unimportant part of human existance and that people should use their mind instead of their labor. Getting that $200 is good news. The bad news is that Javantea.com is coming up for renewal. Do I go with my current provider VeriSign (Bad Service, Inc.) for $55 for a year or Register.com for $30? Tough decision. I have six days to decide. I'll have to put it on my credit card because I don't have enough cash in my checking account for food. Ugh. "Wizard needs food, badly." Finding a job will happen tomorrow. Working on my old project at $12 per hour will definately happen tomorrow also (slacker's famous last words).

In other news, America's Army sucks. And the game sucks also. Hahaha, pacifist humor. It's still down most of the time. It's amazing that they allow it to go this long. It's been a week and they've done nothing good. I've gotten into two games and have been shot twice. Once was by my own teammate and another time was by an actual player (the fact that night is very realistic does not mesh well with bright daylight coming out of my uncovered southern exposure window). But the next round when I was going to laser tag everyone, the server was pingbombed with ICMPs. It's just like a real war and in this war, the pacifists are winning because no one is getting killed. "Hoo-rah!" "Good to go." "We've got Charlie!" "Incoming! Wait, it's coming in from the network card! Oh my gosh, the server is down! We have massive casualties! 2,900 at any time of the day are succumbing to pingdeath by way of ICMPs!" "Darn, I was hoping to call in an airstrike to napalm that village full of women and children. Oh well, I guess I'll play Counter-Strike instead." "Hostage down!" "Pvt. Ryan has been kicked for 3 TKs."

That reminds me of a great story. Last year, my roommate and I played a lot of Counter-Strike. I even set up a server using his old computer parts. His new computer eventually lit aflame, but that's another funny story. This story was before his computer lit aflame. We were playing in my sweet server and people were having fun. I decided to crash the party and kill some people. Being physically connected to the server via Cat5, I am the ultimate LPB. I learned how to circlestrafe people with >70 ping. Everyone else got a bullet in the head before they saw me. So my roommate decides to join the fun because he also was on a Cat5 to the server. It made it completely fair between him and me to get the most kills. We usually got 10x as many kills as everyone else. He's a lot better than me because he was two years older than me and he has been doing multiplayer on a 56k since Quake 2. I've been doing since Duke Nukem 3D on 28.8 modem. We're the pioneers, but not the most skilled out there. Anyway, on with the story, we're duking it out and we were on the same team for a while until the teams were 10-5. I decided to switch teams. He knew as well as I did that it meant all-out war. The teams were auto-balanced and then we started killing. He was winning with 50-3 or something vs my 42-6. He was talking shit and I started getting angry, I started putting extra bullets into dead bodies. Often, I'd find a solid group of his teammates and take them all out with a Colt. But my teammates were awful getting shot in the head and naded again and again by him. We were up to 111-5 to 108-12 and I'm running towards the hostages. I see a terrorist and pull my trigger a bit too soon, I take out two hostages and kill him. While I'm reloading, he comes from behind and kills me. I curse because I won't be able to buy a gun. Killing hostages costs $1500 a piece and I had $3000 left. So I start up the next round with my USP Tactical pistol and a vest minus helmet. He had his hands on a Colt and Dual Berretas secondary. He had all kinds of grenades and vest with helmet. It starts out and he kills two of my teammates. I'm running the main route hoping to get trade a kill for being killed. I was totally off. His teammates met up with my teammates on the secondary route and killed the rest of my team. I was the last CT left and I went to the hostages. I grabbed all of them so that I could get money. I start running back, but then I think that I should at least try to get one kill instead of money. So I run towards the secondary route. No one is there. They went back up the primary route and found that the hosties were gone. They came back for me, but I was almost home. I wanted to try for a kill, so I waited with the hosties at the hostage rescue point. The first person there was my roommate. He was talking how he was going to kill me. I tell him that I wasn't going to let him. I lay down some cover (with my USP btw, since I hadn't killed anyone let alone seen anyone to get their gun) so he knows I'm serious and that I know where he is. He fires back and laughs that I only have a USP. He comes out shooting and hit me a few times, but I hit him three or so times. He was low on health, so he ran away. I had 2 hps left. I was dead, so I turned to get the hosties in for the money. He throws a flashbang and I can't see, so I'm running in circles, I didn't make it to the rescue area, but thank goodness for that, you'll see in a second. He shoots his colt at my head and misses me. He hits a hostage. Two. Three. He was kicked. I forgot all about three strikes law in my Counter-Strike Server. I didn't know what the server variable was about, so I left it at default. No real CS server has a three strikes law. He curses at me and I kill the rest of him team and get the hosties in. I won the game 114-12 113-5. That was the only time I won, but I feel good about it. The moral of the story is to keep your fire away from innocent white jackets (the hostages are usually scientists, but sometimes are workers in orange jumpsuits). Enough of that, hope you liked my story. It isn't all true, but I think I captured the moment of the event.

Home Characters Making Of Technical Mail News Links |< First < Prev Next > Latest >|  bandwidth version Goto Scene