Wednesday, December 16, 2009

HLSL and GLSL fun...

I recently started playing with GPU shaders, learning GLSL and HLSL, which is more like learning how to use a particular C Library, than learning any kind of new language. It is almost identical to programming in C, with some significant limitations.

But once you understand the purpose and flow of information it's all quite simple - the basics anyway.

Wednesday, June 17, 2009

Monday, June 15, 2009

360 Panoramas: A While back...

A while ago, I shot some 360 panoramas, just for a fun experiment and to see what I could do with my 10.5mm Dx Nikkor lens. The lens is really amazing, obviously it's designed for the DX sensor, so won't work, or won't completely work with FX sensors, but anyway. The lens is REALLY sharp and makes images that are clean and easy to stitch using the panotools stitcher plugin for photoshop - once you get over the complexity of understanding the conversions - and of course, you have to compile yourself to overcome the 160° FOV limitation.

Whatever the case, check out the results.



http://cakeller98.site90.com/syntheticnature/panorama/

Friday, June 12, 2009

Intuit Still Bites! I found a workable but lame solution to my problem.

As stated in a previous post, I've been hobbled by intuit's inability to purge or export / import transactions. I can't remove a year of transactions because once I do, I can NEVER get them back. Or so I was led to believe.

It used to be, you could easily export a QIF file, and Import it back into the file, clean and simple. However, as of Quicken 2006, they removed the ability to import QIF files into Checking, Savings, or any other account type that you might want to - what??? that's right, any account you might want to download from a financial institution. Why? because intuit charges banks to allow customers to download OFX files into quicken. Unfortunately this precludes us lowly customers from being able to import exported transactions into any of these type of accounts, which means repair of our quicken file is nearly impossible.

Or so I thought.

They keep QIF arround for import of transactions into CASH accounts. Not sure what their logic is here, but it appears to me, as though the reason for this is exactly what I'm about to describe to you now.

If you want to import a set of transactions from one quicken file into another:

1) backup your files because if you mess this up (accidentally import into the wrong account or something)
2) export the transactions from your original file
3) open the other file.
4) create a dummy cash file called something like "IMPORT"
5) import the QIF, be sure to import to the IMPORT account.
6) select all the transactions in the IMPORT account and right-click CUT them.
7) switch to the account you want these transactions in, and paste.
8) ... oh that's it, we're done... check your ballances, maybe reconcile but that's it.

I think the whole reason for this hassle and headache is simply so that quicken can control WHO gets to download transactions into their software.

Seriously, if I can find an open source solution that does what I need it to, I'm switching. This BITES!

But as I mentioned before - at least now I can deal with my files in a reasonable way.

:) Cheers! (to all but the bone-heads at Intuit)

Thursday, June 11, 2009

Quicken RANT!: Year End Copy, Wasn't Working...Intuit, You Suck! Now it is working... You Still Suck!

For the last 10 or so years, I've used Quicken... when Quicken Home and Business arrived I was thrilled to start using the new invoicing functions etc.

Unfortuneately I am a bit of a paranoid goob when it comes to personal information (why I would write this kind of post in my blog is kinda beyond me, but whatever)... So I password protected the file, which seems the prudent thing to do with financials. And heaven forbid I accidentally edit a transaction older than... 1, 2, ok 5 years, that seems like a good idea to password protect OLD transactions.

So every year, come tax time, I fruitlessly attempt to do what's called a "Year End Copy" of my quicken data file... I really want to purge out anything older than the tax year. But every year, without fail, I end up giving up on this, and going back to my latest backup and just slog through, cleaning up the categories, and making sure every invoice and every payment correlates, and reconciles.

So here's what would happen; When I'd try and do a year end copy, purging transactions older than xyz, quicken would "POOF" dissappear. Bleepity monkey bleeping bleep.

OK, so... I'd try doing other things like a File->File Operatiosn->Copy. I'd specify to keep only transactions between Jan 1st and Dec 31st...

Seemed to work, at first, but upon examination, certain accounts contained all old transactions?!?! When I manually started to delete transactions, it was asking for the password only in these accounts and only on REALLY old transactions. It was then I realized that it seems it is only these accounts that have at least one transaction that requires a password that have all the old transactions?!?!?!

Ok, fine! I removed the passwords (file and transaction-protection password) and tried a year end copy, which is what I REALLY wanted to do anyway... and wooooo hooooo!!!

After YEARS of struggling, searching for answers, that I never did find - not once did I find someone explain this - I think I finally have the answer:

In order to do a year end copy, or any automated function that may delete or alter an old transaction, you must ensure that the transaction password is blank!

hope this helped someone not bash their heads in with a box of old quicken CDs.

recap:

Quicken?
Year End Copy?
Do this:

First Step ->
Remove Transaction Password
File -> Passwords -> Transaction,
enter the current password, leave the new ones blank!)

Second Step ->
proceed as normal
File -> File Operations -> Year End Copy

Third Step ->
If you're still paranoid, re-set up the password

Fourth Step ->
bookmark these instructions for next year!!


------------- UPDATE!!! FRACKITY FIG NEWTON ----------------

I spoke to soon.

Problem still exists... however, my best work-a-round, and at least I now don't have to enter the transaction password each time I delete a transaction...

File -> File Operations -> Copy

the select the dates you want.
You won't have cleared out ALL transactions, and I haven't figured out why yet... but at least now you can narrow it all down to a single year at a time.


WHAT REALLY sucks is, you can't ever merge these files back together.

oh well... I'm in search of an open source alternative. Of course, there'll be a learning curve. But at least if I have my quicken broken up into manageable single year chunks, I can import a year at a time, and get used to it. Maybe I never import the old crap, maybe I do... awe, WHUDEVER... did I mention, Intuit stink-y-stink.

Shazzle... I totally thought I had it beat, but once again, this year, like every other, I have hit a wall that doesn't want to be penetrated. At least I have found a way around the wall. And by this time next year, or sooner, I will be on a completely different path - I HOPE - using some open source solution!

-- did I mention, that once again... slogging through is all I can do? MUST FIND OPEN SOURCE SOLUTION (because MS Money, is WORSE!)

Tuesday, June 9, 2009

There's No Such Thing as All Natural...

If we, in any way, had anything to do with making it!

For example, unless you find some un-touched, virgin land with vegetation growing on it in some remote part of the world that is isolated so completely as to have never come in contact with pollutants, or pesticides, or anything we may have made, contributed to, or whatever... there's simply no such thing as "ALL NATURAL"...

Organic food could be considered synthetic from a certain point of view. We SYNTHESIZE it from the earth, the seeds, and the nutrient rich soil we plant the seeds in and the water we use to make it grow.

Which brings me to an interesting, albeit goofy point... all natural synthetic foods... I love it! mmm what a delicious concept.

Monday, June 8, 2009

Crazy Stormy: 60MPH winds and buckets of rain!

I've never seen rain and wind this hard and the voluminous. The closest I ever remember what the innagural day storm, some 12? years ago... in Washington. But the rain wasn't as hard. The other big difference... this one lasted for a minute.... skies got dark, little bit of rain and a little wind, then all at once the rain began, so hard it sounded like hail, with plumes of mist skating across the street. It was really awesome. And now, Sunshine... probably a Rainbow or 5. That was somethin' else.

Sunday, June 7, 2009

A Perfect Way to Rebut ANY Opinion Based Argument...

From part of the - if you want to contribute - documentation of an open source project I recently perused:

"For the sake of code consistency, project coherency, and the long-term
evolution of BRL-CAD, there are guidelines for getting involved.
Contributors are strongly encouraged to follow these guidelines and to
likewise ensure that other contributors similarly follow the
guidelines. There are simply too many religious wars over what
usually come down to personal preferences and familiarity that are
distractions from making productive progress."


that last bit pretty much applies to ANYTHING. CAD systems, Operating systems, Oil-Paint vs Acrylic, Tastes Great / Less Filling... etc.

So, the next time some SCHMUCK tries to convince you that your way simple isn't as good as theirs, tell them to bite you, quote the end of the previous paragraph, and agree to dissagree!... of course, you should listen for a minute or two, for the sake of possible insight into something you may have missed, but then blow them off anyway ;) hah! (or don't... it's your choice)

Nuts about Subversion!

OK, I know... geekfest! whatever... it's just fun.

Subversion SVN (Version control software) is making my life so much easier.

I use multiple CAD systems (pro/ENGINEER Wildfire (2, 3, and 4 - pre-production, which is another story I'll tell you about later... dang PTC, THANKS-A-LOT GRRRR) anywyay... but I also use Maya for rendering, and organic modelling of things that are, more difficult to model efficiently in pro/E.

Never mind the fact that I have to manage documents, and images, and Illustrator files... etc.

When I worked as an Industrial Designer, in a corporate setting, the engineers and I used Intralink. GREAT for proe, not so great for anything else. While it's possible to manage other types of documents in Intralink, it's REALLY set up to manage versioned pro/E files.

so... back to my excitement... While Subversion SVN is not as dialed in to manage proe files as Intralink, and doesn't have ANY of the renaming capabilities of Intralink, it DOES give me a way to manage a large set of project files in a controlled way.

For the pro/E files, what I do is, I'll be working along, saving etc. When I get to what I deem to be a checkpoint, I'll save, go into my current working directory and do a purge. This step clears me down to only tha latest version of the files I'm working on. However, since the checked out versions are older, some of them get purged from my working directory when I do this. So I just check in the few files that have changed, and then "update" my working directory. Now I've got a much more sparse view of the historical files, and much less data to backup when the project is done.

Another way I'm using Subversion SVN with pro/E is to create actual "tags" (which is, in software terms, like a version release, or even a minor or "dot" release) Since a tag is a "cheap" copy, or rather a link to the versioned file at a particular version, it doesn't take up a bunch of extra space but gives me a snapshot of the model at a moment in time. So I can check out, ONLY the files included in that snapshot.

How I create the snapshot:

Check out the working files, purge the directory (using pro/E's purge command from a cmd window, or DOS box) then the files remaning, as I mentioned before, are just the latest working files of the model I'm building. I'll select all these files, and branch/tag them as "version 1.0.1" or "as_sent_6-6-09" or some way that makes sense as a release schema. Then commit the workspace, and all the files I tagged are now considered part of that release, and I don't have to check out the entire trunk, or any extraneous files.

Using a release schema like this allows me to pull a model as it was at a particular date and time. If there's ever a question about a set of files that was sent somewhere on some date, I can pull THAT exact version, without having to save a zip or rar file with EVERYTHING each time I send a set. (imagine if you're changing a small part like a PCB and each time you send the assembly, you had to backup EVERYHING, including that 20 MB plastic shell that is final!... this way, it's the same file, and it's referenced instead of copied!) very clean, very nice!

anyway... digg diggin duggit!

I've also seen that people are using Subversion with Maya files, and I see no reason it couldn't be used with just about anything.

I must include a word of warning for those who have never used version control. Although version control is an amazing tool to keep organized, it's NOT without it's quirks, and it's POSSIBLE to corrupt your data. So Make backups, and read up on how to and NOT to use Subversion before you go cataloging all your projects into a repository. ;) Just make sure your butt is covered until you REALLY know what you're doing.

Good luck! cheers.

enjoy!

Wednesday, June 3, 2009

Programming: Subversion and Version Control...

I don't know why I get off on Version Control. Probably has something to do with me liking things in neat tidy order because I'm inherently disorganized! You know us creative types, messes are pretty. But hey, we still have to work, and it is SO much easier to work when things are easy to keep track of. That's not to say version control takes all the thought out of managing files etc, but... at least you don't have to constantly be contemplating if you saved a copy of a file on the desktop? or somewhere else or started a new branch and ooops, you started back working on the wrong one. Whatever the case... version control makes it nice and neat. There's one place to look, you can check files out, work on them and check them back in. In fact you can lock them too, so if you forgot that you checked out a file 3 months ago, then the client decided to put that on hold. Well you started some of the work... and now, you've got the file locked so you're reminded to go find your working folder. Of course, if you trashed the folder, you, as administrator, can always unlock the project again, but... anyway

Version control is great when you work on objects (images / cad models / etc) where there are a large number of complex changes that need to be kept track of.

Of course, you can also check out the latest version, delete the repository (that's where all the history is saved with your check in notes and etc) and then create a new repository.

Best of all, there are all kinds of REALLY great open source projects that do this.

I've been using TortoiseSVN for my front end. It's integrate with the windows shell, so it's just right there when you need it. And it's visually easy to understand.

Recently, I wanted to be able to access my projects from more than one computer (laptop / desktop) and decided to set up a server. EASY PEASY!!!

Collabnet has a single install package that just sets it all up and you're ready to go! Of course, you'll need to do a little more reading and research to set it up to use security, but it's all there!

In addition, Collabnet has a plugin for both eclipse, and Visual Studio to access the SVN Server (like TortoiseSVN, but right within the IDE)

Links open in new tab/window (depending on your settings)
TortoiseSVN shell integrated front end

Collabnet's Subversion Server

AnkhSVN Visual Studio and eclipse IDE integration

Monday, June 1, 2009

Music: Juana Molina

Been listening to Juana Molina for a while now, and her stuff is really interesting. You might call it a bit "off ballance" but brilliant.

If you like really "produced" sounding music, probalby won't like it, but for me, I like stuff that's a bit off-kilter. Music that's too clean will lull my brain into boredome. At the same time, if it's too OFF, it'll be distracting.

Two tracks of note, right now:

La Verdad, from the album Son
Isabel, from the album Tres Cosas

-- if you liked Bjork back in the day (or now) you're more likely to appreciate Juana Molina. Not to say they are, at all, the same, but... they're both just enough off the normal keel to make for great workin-to music.

Cheers!

Friday, May 29, 2009

Theory: Scan Data - The good, the bad, and the ugly...

Scanner makers have this idea that "precision" is the most important aspect of scan data PERIOD!!! nothing else matters.

At least in my experience working with frustrating data. Data with holes, spikes, blurps, and worse, BAD topology (like bad welded vertices). I'd like to suggest to them that a full and complete shell, at REALLY LOW accuracy is, at least sometimes, more important that only keeping PERFECT data.

When you photograph a portrait, you don't want all the pores, and pimples... a soft image is enough to get the picture, and is actually nicer.

When I'm scanning something, I sometimes just want a light-weight fast framework to model around. I want accurate-ish features to model around. But I build my models in pro/ENGINEER anyway, so it's all general... you build the features semantically correct, and then dial in the dimensions. That's the beauty of parametric feature based modelling. So why do I care if my data points are +/- 0.04617475455 <- yeah that says O POINT O A GNATS ASS - if yo don't see that - sorry, ponder it a second. :) anyway... point is, the dimensions could be off by huge amounts if all the features are there. I can always go back in later and tweak and dial the model in to match for precision.

So, another thing about more complete data... start off with a complete shell, and then TWEAK the model/data, as it gets better and better. like... as if you started with a blob roughly the shape and snapped all the points to the good data - marking the points that are better, and points that are worse, allowing the operator to use his/her processor(brain) to interpolate the data. Sometimes it take a half a day to get the scanner to see the data correctly, when I could smear it over in a mater of minutes (if I had a clean model to work with)

anyway ;) just a few thoughts on scan data... I'm sure there're reasons why they act like this about the data, but sometimes I wish they'd give me more control to visualize and manipulate the data myself.

So I've began reverse engineering the raw data from my scanner to see what exactly IS available... and honestly, it looks like they actually give me all the useable data when they give me the "good stuff"... as in, sheesh... anything that isn't good is looking HORRIBLY NOT GOOD!!! :) hah.

We'll hvve to see. I haven't got a white paper or anything on what the data is, or where it came from so I'm still piecing it together. -- will follow up when I've figured more out.

ntlthn cyal8r!

Tuesday, May 26, 2009

Programming: Quick Convert - Alpha is released on Source Forge!

OK, Quick Convert is up... it's really basic, and early, but it works.


Quick Convert on Source Forge dot Net


Here's what it looks like:



The purpose is simply to do QUICK conversions from one unit to another - if you do design/engineering and are switching between english and metric a lot, this could be useful.

Eventually I'll add other conversions, and area, and linear conversions, etc...

But for now, it's about getting somethin' done and out.

if you have suggestions/comments, please feel free to leave them here, or on the open discussion forum for "quickconvert" on source forge

update 6/7

kinda looks better now!

Monday, May 25, 2009

Complaint: Norton Renewal "Suggestion" as EMERGENT ERROR is a BAD move!

OK, first off, I'm sure there will be pleanty of folks that will suggest not using norton at all for internet security and a/v. But, whatever! Fine, sure there are lots of options out there, this happens to be one that has worked for me in the past, and I've never had problems before on machines running Norton...

That aside, this issue that I'm going to rant about has less to do with software functionality, than it does with underhanded tactics to ensure on-going income from customers.

Let me first establish a few assumptions I have about security software.

1) any warning from the system that shows in RED should ONLY mean that there is an error or situation that actually means that your security is, in fact, compromised. out of date virus definitions, ok, anti-virus turned off, ok... those are valid reasons to show RED on the task bar.

2) the task bar icon for system status should NEVER show subscription information, EVEN if it is completely expired and out of date. it is SO EASY to show an additional icon in the status area to indicate that your subscription is out of date - or coming due.

The fact that Symantec thinks it's ok to display a visibly similar status color for SUBSCRIPTiON immenent expiration, for the last 30 days of my subscription that I paid for, is ridiculous. in the past they allowed you to at least snooze the warning for 1 or 15 days. But the only solution to change the status is RENEW NOW! BLEEP YOU NORTON!!!

And with the fact that I have 30 days left, I'm not even confident that the process will honor the remaining 30 days - they don't assure me on the purchase page that they will. Not to mention, they offer "Subscription" renewal, which in the past meant sure, you're getting updates to the virus data base etc, but not an upgrade to the latest engines and etc that come with the new version... I digress.

So I open the status window and everything is secure, except the status button reads, what?
Security Status
Attention
"Fix Now"

so for the last 30 days I have to put up with a system that appears, psychologically, to be compromised... haha, that's sounds funnier than it did when I was originally writing this.

Now when I go to glance at my status, I'm at first met with what FEELS like - oh no, I'm compromised, oh, wait, no that's just norton being annoying - or is it???? wait, ok I'll open up the status window, everything looks ok and secure... sure but is it? the fact that virii out there can compromise the system and turn OFF virus software and hide the status icons means that I can't trust things to begin with, but when anything isn't all green, it means I have to spend time thinking about my security system all the time - or consequently, put it out of my mind and ignore it. Which is worse?

This is a horrible practice and I can't even fathom the idea that they aren't completely aware of what they've done. I'm sure it meant $M more in revenue from less technical folks that just want to believe that they're "safe".

Since they already lost a lawsuit where they'd STOLEN days from users who renewed before the end of an OEM subscription, I wouldn't put it past them to think this is a valid marketing technique.

Unfortuneately for them, there will be backlash from this behaviour. It undermined my faith and trust in them, and regardless of their ability to keep me relatively safe online, it makes me question if it's worth it if they are going to stoop so low.

Oh well. Dumb behaviour on their part may hurt them in the end, but I doubt it. Probably they have enough people who just don't know any better and will just renew that any of us that pay attention and are upset by this, just simply don't impact their bottom line.

Should we make a stand?

Music: What I've been listening to lately...

Rhapsody Playlist Link:
Cut the Herb Scruffy, my Shadow is your Chemist in Brazil:

1. Amores Bongo - Herbaliser
2. More Tea, More Beer - Herbaliser
3. Serge - Herbaliser
4. Verbal Anime - Herbaliser
5. Get a move on - Mr. Scruff
6. Music Takes Me Up - Mr. Scruff
7. Donkey Ride - Mr. Scruff
8. Snakeskin Bib - Fila Brazillia
9. Mashin' On The Motorway - DJ Shadow
10. Spat - Cut Chemist
11. What's The Altitude [Featuring Hymnal] - Cut Chemist
12. Spoon - Cut Chemist
13. A Peak In Time - Cut Chemist
14. Imagine - Psykosonik
15. Underwater Rhymes - DJ Cam
16. Toujours L'Amore - Dimitri from Paris
17. Anjos Lramaos (Trio Remix) - Miyazawa
18. Toujours L'Amore - Dimitri from Paris

Thursday, May 21, 2009

Programming: Inches to mm, sure, it's simple.

Another idea for a program, that I know, it's already been done a bunch. However, I wanted to do it MY way.

90% of the time, the reason I use the calculator program is to convert inches to mm, and most of the time now days I don't even need to, certain conversions are just burned into my brain.

But, in CAD it's nice to have round numbers. Not just because they look pretty but because whoever is reading your CAD file will be more comfortable knowing it wasn't some mistake.

Deliberate dimensions shouldn't usually go beyond the digits of tollerance.

What does this have to do with, um... anything?

Well if you convert from inches to mm or vice versa, there's a bit of extra, irrelavent stuff going on, as I mentioned before, that's outside of tollerance/relavence. So if we have a program that goes to a decent number of tollerance digits, we can then see the implications of our numbers in either units.

Or another way of looking at it is if you understand mm or inches in terms of spacial relationships and tollerances, but not the other way around (e.g. you know what 0.005" difference in diameter is, but what is that in mm.... 0.2mm )

Say you're designing a snap feature, 0.002" can make a difference, but you're doing this in mm because that's what the client wants. OK, so now you have to convert your numbers or something.

Sure you could work in inches to begin with, but what's the fun in that. :) LEARN and ADAPT - or die a painful death!

ok... so What is it I want, I want pair of inputs (mm and inches) in relative proximity to each other, with a clear labelling. I want no extra blech around them, and a simple way to close this. I want it to be positionable on top of the title-bar or something like that, but could be placed anywhere. Whenever I press enter it switches between fields allowing me to start with one measurement, then adjust the other units to a round number and see what that effect is. It should accept a single key to copy one unit or the other to the clipboard.

Would be kinda cool if you could stick it to a particular working window. If that window would close the position would revert relatively to the same spot on the users screen as it was in that active window.

I'll see what I can do =- until then, any other suggestions, I'll take into account:

BTW, a friend also suggested it could run in the startup section of the start menu (easy enough) and then of course, save it's position between uses (also, easy enough)

:)



Continuing:


I'm thinking it would be a more useful tool for more people, other than me, if there was a general conversion, instead of a fixed conversion (obviously, duh).

I had intially thought it would be better if it was just simple and worked for only this one task, the one I needed it for, but why not have it be a super fast push-pull generalized calculator. That is, the function is set by a drop-down list, in between two fields. The two fields each take values, and the one not recieving input updates in real time.

Since I'm doing this in C#, I can use delegate functions for the math,,whereby the function is held in a variable, and is selected by the user from a sneaky drop-down list box.. However, the value fields remain simple. either can be used for input, and the other updates in real time. Instead of using a fixed equation however, they are acted upon by the currently delegated function.

BTW, I've started an open source project over at sourceforge.net. if you're interested in taking a look, I'll post a link once I've got the program SVN'ed and uploaded.

for now it's just a fixed mm to inches. The aformentioned will be added once the interface is working the way i want it: FAST and SIMPLE

:)



Continuing:


OK, so as a continuation of the idea of a generalized conversion tool. Rather than having a delegate function in between the two fields, it'd be better to have each units settable independently. and the stored value is in some raw, or base unit. This foregoes a lot of the complexity of the program in general. Essentially the two boxes are input / display windows onto the same piece of data. VERY simple.

Here's a snapshot of version 0.0.0.1 ;) Still with only the single conversion, but using the just-described methodology.



it's designed to sit in the upper right corner of other windows.... to have it automated would be kinda great.... grab the handle of the top-most window (active) and stick to the titlebar and even insert itself as a tab-stop would be useful.

So, how could I maintain the simplicity and use this for modelling simple volumes and areas? maybe that becomes outside the scope of the project, and a new project in and of itself?

Programming: Convert a Keystroke into a Mouse Button.

I have an old laptop. I'd like to be able to have middle-mouse button functionality, but the darned thing only has two buttons and no function to get a middle button click.

So, I thought I'd go find a program to convert one of the never-at least not by me-used windows keys to the middle mouse button. Seemed reasonable enough, but I couldn't find one that looked like it would work. Lots of stuff out there going the other way; keystroke by way of mouse button... yippee, but doesn't fix me.

So, I'm going to write a bit of code to see if I can learn how to do this. Should be fun. Will post again as I progress.

BTW, if anyone knows a good - free - program that can do just this ( on win xp ) let me know... especially if it's open source :)

Wednesday, April 15, 2009

Theory: Tesselation of a Multi-Patch Nurbs Surface...

Recently I was enjoying some of Ken Perlin's java applets, and one of them in particular caught my attention and spawned an idea.

he had a globe on which there were multiple populations of different colored points.

I thought it would be interesting to use this type of flockinig/distribution to shift triangulation points arround an object in order to achieve a nicely tesselated look, with minimal polygons and very high "quality" polygons as well.

Further, I thought it would be interesting to have the points exhibit behaviours. e.g. a point could have a major and minor axis. Using a gaussian curvature it should be possible to orient the point such that one axis flowed with the least curvature, and the other axis flowed with the most curvature.

All of the points on the surface would repel each other, but the points repelling force would be tied to the curvature along each axis. along tighter curvature, there are more points needed to describe the surface accurately, and therefore more points should be closer together. Conversely, less curvature should mean fewer points are needed. Or in other words, the higher the curvature, the lower the repelling force.

in this way the tesselation parameters should remain consistent across multiple surfaces as long as they all share connectivity.

Tuesday, April 14, 2009

Theory: Image Based Height Map for Hole-Filling

Problem:
Filling irregularly shaped holes with appropriately continuous geometry, as in scan data with non-circular holes.

Possible Solution:
create an arbitrary height map for a patch that encompases the hole and then using 2d imaging techniques "build" a new height map for the empty area.

As a manual technique, one could literally blur-paint from the edges, using human feature recognition. but I believe that, using gaussian blurring techniques it should be quite possible to build a relatively pleasing result in an automated way.

Test:
import scan data with big patchy holes into maya.
create a texture map/placement
generate height-map data using the transfer attributes function
open height map data in photoshop, and using various techniques, blend/blur/paint/smear... create a new height map that fills in the gaps
import new map into maya, and using a displacement node, build a new mesh that fills in the gaps.
trim the edges to match scan data, then bridge the gap.

I haven't tried it yet, but still planning to.

Wednesday, March 18, 2009

Miscellaneous: Motor Cortex Test (fun, try it)

This is fun to try:

If you are sitting around one day and want to reveal something about your brain's motor cortex, try this trick:

Without anyone watching you unless you want to recieve a concerned look.
Also, it's extremely important that you follow the left / right accurately or it won't work.
  1. Sit in a chair
  2. Lift your right foot about 1" off the ground.3. Move your foot in clockwise circles.
  3. Keep doing this.
  4. Hold up your RIGHT hand in front of you.
  5. In the air write the number "6" with your finger

~~~Your foot will change direction.~~~

Comment on your own results (unofficial poll) let's see how many people are immune!

Keeping in mind, of course, if your foot doesn't change direction, either something is WRONG with you, or you didn't do it right :).

Sunday, March 15, 2009

Rendering: Subsurface Scattering and the Architectural Shader...

Task: Render transparent silicone with the sss effect but without the complexity and rendering cost of gi, caustics, or fg.

For product rendering the mia_material_x is a great shader, it has most of the features needed to simulate all kinds of materials. What it does lack, however, is a decent way to show believeable translucent materials like silicone.

The translucence feature of the mia_material_x only really works for paper thin objects, and even then it provides, I believe, only the back shadowing.

misss_fast_shader, does a very decent FAKE job of sss estimation... however, it does not have a facility to be transparent at all.

Solution:

1) create the misss_fast_shader,
2) assign it to your object,
3) check the box under algorithm control "Scattered Component Only"
4) create the mia_material_x shader,
5) connect the misss_fast_shader.outValue in to the mia_material_x.additional_color
6) connect the mia_material_x shader to the shading group that is connected to the misss_fast_shader (this will mean that the lightmap and other nodes will already be connected up, and we're done)

of course, you'll have to tweak the colors of the sss to look correct for your materials, but that's essentially it!

Shader Network as described.
However, there are still some issues with this shader combination, and I will describe them in another post.

----- here's a hint: "Shadows should not be sharp from an object inside a translucent material" more exploration is needed! ------ will get back to you soon.

----- I just found Master Zap's article about plugging certain aspects of MIA_MATERIAL_X into the MISSS_FAST_SKIN_MAYA... however he does this for max, and well... I don't know how to port that .mi file over to maya... yet. Not even sure it solves the issue. However... going to give it a shot.

------ another note. Shadows, apparently, cannot be "glossy"? or to be more specific, shadow shaders, can't do blurry shadows. (raytrace, or mapped)
(blurry shadows from diffusing materials requires using GI and/or caustics, I think it's because when you're tracing back to the light through a transparent object, how do you know where you are? are you inside the penumbra, or the umbra? obviously, photons solve this. And with newer versions of mental ray, at minimal cost (compared to the effect)

Friday, March 6, 2009

Introduction...

I'm creating this blog at the suggestion of a good friend who I babble on about shader ideas, and tips, tricks and, of course, complaints about typical CGI stuff.

Probably the most important is the complaints, because often times it is when we are discussing these complaints, that the greatest level of understanding comes about, and many times a good solution.

I will admit, I am not the world's foremost expert on Maya, mental ray, Rendering, or Shader writing, however, I enjoy working with them, and have a fair bit of experience with them as well.

I also hope this will help others overcome some of the hurdles I've found in my quest to understand the art of simulating light.

Thanks for reading, hope you enjoy this.