z3r0_d's homepage

Home
Thoughts
TI Calculators
Blender 3d
Programming
About Me

E-mail me

ALL MY SCRIPTS ARE USELESS! Sept 9, 2003

But before I get to the topic of my subject I would like to mention that that is what I intended, but I hope I can find the motivation to do them. I also had something else to say which has since slipped my mind

Ok then, how will they be useless you may ask? Well the RestoreUV script is now unnecescary considering the radiosity functionality of the current source trees that will be avalible in 2.29. As for baking radiosity into a texture it is no longer a priority, and blender needs more tools similar to it. The DOF thing I have been thinking about could easily be done with blender's acculimation buffer, just need to allow a numeric input of frames used in motion blurring (could go up to 4096 as I mentioned before).

I remember now, I will probably be getting a new server, and have yet to instal (or make) a reasonable replacement for FrontPage (or FrontPage itself). Now, before anyone screams about me not being a true geek because I don't hard code all of my stuff, my response is that I am lazy, FrontPage is easy for me to work with, and it allows me to at least check my spelling well. Kate (in linux) looks pretty good but it doesn't allow me to have different settings for python developement, html development, and c development hence it is not particularly useful for either. Also the "apply word wrap" command (I have automatic word wrap turned off) removes the newlines between paragraphs. (I am writing this in Kate now)

Besides, as for the math of RestoreUV, it isn't easily possible, and is no longer necescary

I have another script in mind that could be incredibly useful (and a major improvement over blender's nearest feature), but I haven't fully worked out how it all should work. I feel the best approach would be to write it in python, then port into c or c++ because I wouldn't have to wory about all off the odd things in c-based languages (like the lack of problems accessing array elements out of bounds) which would aide in debugging.

 
Umm... June 20, 2003

I need to finish my script projects...  Currently I am working on two, and considering a third.  

Main project, RestoreUV

This will allow the restoration of UV coordinates to radiosity solutions.  The problem is trivial on triangles, and simple on planar quads.  On non planar quads the vertices lie on the surface that would be generated if the face were subdivided.  The math is ending up more complex than I would like, and the solution is still a bit off.  I would also like to use Blender.Window.draw_progressbar(), but I am having trouble with it in my for loops.  

Idea, improve theeth's UV export script

I have a few ideas in mind, they are as follows

  • use OpenGL (Blender.BGL) for line drawing
  • allow different line colors (how?)
  • allow different background color (how?)
  • allow vertex-colored faces in texture
  • allow vertex-colored line
  • (change variable thickness to opengl call)
  • maybe a preview in python window
  • maybe allow repeating UV maps?

I would have to write a color chooser too

Pondering

I have been playing with focal blur lately, and have produced results with 240 samples.  256 is not out of the question, and with a script 4096 isn't out of the question.  Essentially I have been using the motion blur functionality with the sequence editor to blend 240 images.  The results look good, for the places that are not in focus.  Because the sequence editor doesn't have higher precision than the images, it looks like they have in the places in focus been converted to a lower depth.  

notice the banding on the rook, the background gradient, and the gray thing in the lower left (just behind another piece, which is a rook).  This was rendered in about 30 minutes (I think) at 1280*1024 by combining 15 motion blurred (16 samples) frames, or 240 images (but not combined all at once).  

With a python script I could probably write a targa loader, and merge the images with 16 bits per channel precision, then export another targa (with the typical 8 bits per channel), thereby removing the precision loss.  

all script names are subject to change

 
almostBowling June2, 2003

I feel I should ramble about this "mysterious" project I have been working on.  It is titled almostBowling and is almost a bowling game.  It was written in C, and the media done in blender (no textures, just vertex colors).  The binaries can be found in my files directory and are in the format of almostBowling_OSNAME.zip.  

I shall copy from some other documentation about it (which I hope to publish sometime with the source) regarding the objective and controls



1.0 Installation

Windows:

Extract almostBowling_windoze.zip> to the directory where you want to install almostBowling. This zip archive has the files in it's own directory, so extracting to "C:\Program Files\" would put the executable that will start the game in "C:\Program Files\almostExec\" 

almostBowling can be run by double-clicking almost.exe in the almostExec directory that was created. If you create a shortcut to almost.exe it will not work if the working directory (in the Shortcut tab) is set to the almostExec directory. 

Source is inalmostBowling-0.75_windoze_source_VC6.zip and should compile in Microsoft Visual C/C++ 6 into it's own almost\exec directory.  

Linux:

Extract almostBowling_linux.tar.gz to the directory in which you want almostBowling installed.  Like for Windows this archive contains a direcory in it.  You will need the SDL libraries installed, probably mesa (for opengl) and it would be nice to have hardware accelerated video drivers.  It will also need to be run from the directory containing the program data (likely the same as the one containing the program)

Source is in almostbowling-0.75_linux_source.tar.gz and I will not instruct you how to compile it.  


2.0 How to play

Objective:

The goal is to knock all of the 'pins' off of the 'field.' The pins are smaller than your ball, and usually arranged in a trianglurar shape. You knock them off by throwing your ball at them. When they are all knocked off you will be taken to the next level. There is not currently a limit on how many times you can throw the ball in each level. 
How to throw the ball:

While moving your mouse in the direction you wish the ball to go (relative to the 'field,' not the direction the camera is facing) press the left mouse button (primary mouse button). 
When you release this button (you don't need to hold it for long, just tap it) your ball will be thrown with the direction and speed you were moving the mouse at while holding the left mouse button (primary mouse button). 

The ball will move around for ten seconds (a countdown timer will appear in the upper left), until it falls off the 'field,' or until you press the right mouse button (secondary mouse button). When one of these events occur your ball will be reset, but the 'pins' will not, they will continue moving. 

Other keys:

  • Esc or Control+Q Quit
  • F5 Restart this level
  • F12 Skip to next level (may be removed in the future)
  • P to pause and un-pause.  
  • Enter will also un-pause

Needs work and the comments about code need to be revised.  I am lazy, and the project complete.  Estimated specs: PIII 500 with GeForce, or PIII 800 with other video card.  

Full Circle May 23, 2003

Poking around (it started on slashdot) online I came up with http://www.paulgraham.com/road.html

So, there is a suggestion that computers will go back to working from servers?  (for those out of the loop computers [computer terminals then] used to just be keyboards and displays that connected to a Unix mainframe).  Paul Graham is suggesting that web applications will be supreme.  Looking at the computing power most desktop applications use (a p-200 would be satisfactory) this model could work.  It seems the hardware people are in on it too.  I have seen tablet displays that aren't workhorses, and interface with you desktop (wirelessly) so that you may work in another place.  Also I have seen server computing things where at your desk you have your monitor, keyboard, mouse, and a box the size of a 5 port switch.  This box has 2 USB ports, a vga port (video), and Ethernet (and power).  It connects to a computer over Ethernet that does all the work, and the little box acts like little more than a vnc client.  

The ideas presented that there are so many things that the user should be able to ignore are true too.  The user shouldn't have to deal with drivers, or updates, or compatibility (much).  

Currently there are a number of applications where a server-based application would be preferred.  The first to come to mind is to manage content in large projects.  (think better CVS) While software can instantly come to mind, the management of resources such as the content in games (textures, models, levels) and the inventory of props or film in movies (take 22 is the one the director liked) can prove insanely useful.  I am considering putting some CVS server on one of my (older) computers just to manage assignments I do.  (I am that geeky)

Though I would be interested in a computer with power (which I will try to use), I feel if this is the route that is taken I will be one writing these programs.  


... and I now get to wondering: with the new phones is there more of a focus on entertainment and game play in the limited medium, or technical achievement (it is a raycaster like wolfenstien 3d ... on your phone!!!).  Is the need for better hardware going full circle as well, or just our handheld hardware improving beyond that of what is necessary now.  

(I think a p-120 with 32 Mb ram, windows 95 and office 97 is all that is necessary now computing-wise for most people)

FILALS! May 10, 2003

Where do I begin?  I noticed I don't have referenced yet my alpha face sorting endeavor.  alphaSorting/ have fun.  

I should talk here about what I did for my C programming class, but I shall not, I need to work on documentation more.  

This summer... I will... umm....... MAKE BLENDER BETTER!  I should have time to get it compiled at which time I hope to play with the game engine... (and the physics shall be back by then).  

And maybe a template update over the summer? don't count on it.  

Need an update, what do I say? April 11, 2003

SIGGRAPH is cool!  (The conference is in June though) There are semi-local 'chapter' meetings every month or so, and I will be attending another next week.  Meh, I'll say it.  It is on Tuesday, and will be about games.  Whee

I am doing a significant amount with SDL and OpenGL, which I may release (nothing spectacular though) in a few weeks, if it is completed.  I hope to make significant progress next week.  It is for my C programming course, and another assignment (I have interesting instructors), but I don't know how interesting it will be to other people.  

I am annoyed by some of the things that I can do in C++, but not C.  No matter.  

Maybe I should get to work on it more.  

Oh, I did this a while back (in wings) to prove something.  On the top is the smoothed versions of the meshes on the bottom.  The structure of the two smoothed meshes is the same, but the control cages are different.  One is all quads, and one is all four edged vertices.  Note that each 3 edged vertex on the all quad one corresponds to a triangle on the 4 edged one, each 5 edged vertex to a pentagon.  

I just noticed that wing's background color is my default (windows) background color.  

(and when I feel like it this website will get new template)

Planning on new server, March 9th or so, 2003

I find it really annoying that yahoo has discontinued (apparently) FrontPage 2000 uploading and extensions (the latter I didn't use, and ftp went last April I believe).  They now only allow FrontPage 2002 uploading for their most expensive (and still not worth it) service.  

... and it appears they are blaming Microsoft, by saying that their problems stem from the fact that FrontPage 2002 can only upload to domains, not to directories (http://somewebsite.com versus http://www.oocities.com/somewebsite/).  It doesn't matter to me, I just want it to work.  

I feel I will soon be going to a new host.  I hope I can afford it.  

That said, there will probably always be something here.  Though maybe only slightly more than my other page (which for reasons I will not disclose, I will not link to from here).  

Overdue update, still not here.  March 8, 2003

Where to begin...

My script is coming along, though not nicely.  I am having lots of trouble with it, now know of some new test cases, but have too many other things to do to get to work.  I have no indication that my [vector] functions cause the problems, but little else in the code (that exists on 2 or fewer lines) hasn't been thoroughly reviewed.  A bit frustrating, but I have other things to worry about.  

For a project in a couple of classes of mine I've been playing with glut, and open gl.  It seems a good bit slower than I would like on the systems that matter (the targeted audience really only includes my instructors, and a p3? 450, with a tnt2.  Should work, but so far has proven excessively slow.  ).  I hope that I don't need to maintain separate code bases to develop at home (Linux), and at school (windows), or have blocks for independent window management and such.  

I have another website to work on (non-personal), so this one may go fallow in the coming month.  

Guilt,.  February 5, 2003

Promises... They can become quite annoying.  

I seem to remember nearly promising (if I didn't promise other people I promised myself) that I would write that alpha-face-sorting script.  Well, one weekend [at least] has passed since I hoped to work on it, and make visible progress, and I haven't.  Even though I have other things to worry about, I think I should have done something on it by now.  

What am I going to do?

I am going to explain my idea for my method (write a script with it if you like).  Maybe a bit complex, and not likely going to be seen by people that care (I don't self-promote enough), but here goes.  


For each face in an object

Generate a normal vector that points in the direction the face is INVISIBLE  from (cross product of two edges, works better if is triangle)

Create a list of faces (starting at empty) specific to this face, it will contain the faces that need to be drawn BEFORE this face

For each other face in the object

append this face to a list if one or more of it's vertices lie behind the face in the parent loop (dot product > 0?)

# the next part is a bit abstract still

Recursively go through the lists of faces that must be drawn before the other faces, and look for the first face that must be drawn.  

Put that face in a duplicate object (or change the first face's data, or whatever it takes to make it drawn first)

Remove that face's element from both the list of faces, and the lists of faces that need to be drawn before a particular face

repeat until no more faces remain.  

NOTE:

Problems will be encountered with situations where face 'a' must be drawn before 'b' before 'c' before 'a.'   This depends on the model, and I hope to explain more later.  


I haven't been able to test the one thing I really need to know.  I still don't know how I will be able to control the order faces are drawn, determine the order they should be drawn is all I have figured out.  

MRAWARRGH! The second coming.  January 20, 2003

Ok, I have done a large bit of stuff.  Here goes...

I've been playing with cascading style sheets for another website I work on (for security reasons I will not say where), and in the process I have been working on a script similar to the one I use for this website.  Except it is written in JScript for the windows scripting host, as that is the type of computer I do the most of it's development on, and it is the most common where I work on it.  The most interesting part has got to be regular expressions.  The script does little more than go though directories looking at the files, and modifying some of them, with regular expressions.  

I also have a(nother) 'new' computer.  It is actually just a new motherboard (with integrated audio, network, and USB), ram, case and power supply (I've kept my video card, CD-ROM, hard drives, and peripherals).  It makes a bit more noise than I would like, but I'll live (the case has 6 fans).  I have removed Mandrake, in favor of SuSE, because an acquaintance of mine says it will work better with the sound card.  The sound card works with blender!!!  (my other one had more than a few problems).  I may even be able to get midi support in Linux (I haven't tried yet).  

The install was better than my previous attempts, except for the mouse.  My previous attempts, prior to the new motherboard, and the new chip, (8 in one day) all failed, miserably.  During the install it would have been nice for the mouse to work (I think it didn't because I had it, and a Wacom Graphire 2 USB Tablet hooked up during the install.  The mouse still doesn't work properly.  I haven't messed with the tablet lately.  Also, it would have been nice to see the formatting of my partitions (other than that they were Linux native), so that I could tell which to format (root was reiser, home was ext2), so that I may preserve my home directory.  

Windows didn't work much better.  The found new hardware dialogs become very annoying very quickly.  Especially if it doesn't recognise your IDE well enough to read from the CD-ROM the drivers.  I ended up copying the CD-s onto my hard drive (in linux), and telling windows the divers were there.  I also booted into save mode, went to the device manager, and removed just about everything.  I still need to set up my network settings, and hope that a certain program on my computer doesn't get confused.  

In SuSE I need to update fstab such that I can work well with my windows partitions.  One of them must be corrupt in some odd way (I think looking up LBA mapping may help...), it keeps crashing my systems, regardless of the operating system.   I also need to update my SuSE system online, because they "due to licensing issues" didn't include the NVIDIA detonator drivers, as Mandrake did.  A working tablet in Linux will be nice, and when I get around to it I will do that.  

The case/motherboard/chip/ram/otherCDROM of my old computer now has a 'new' hard drive, and if I get around to it will be running Linux.  Mandrake probably.  I am debating whether or not to put my voodoo 3 in it, or see if I can find some way to get 3d acceleration on a trident 'cyberblade.'  Since the computer currently holding the voodoo card will not boot, I guess it will go to that one.  

I now have DSL, and it is now faster than it was before (which was faster than the modem before, and I didn't report).  And one of the servers I have a page on is running windows, and is case insensitive.  Hmmm, shall I learn asp?  Naaah.  

Oh, I think I've got the math for an alpha face sorting script.  I need to sit down and work on it, but unless the computers at school suddenly start working well with blender on Friday morning, it will likely be Saturday before I get any (visible) work done on it.  

Page created and maintained by z3r0_d.  Please read the disclaimer
1