It Moved

Lightning being animated and rendered within Noesis. A lot of things have happened since I updated the actual web site here. I moved, got a new job, got married, and worked on a lot of things. I've worked on a couple of titles on the 3DS and Vita now too.

I've been wanting to work on a lot of projects in my personal time lately, but I can't seem to pull myself away from Noesis for more than a few weeks at a time. So that's what I've spent most of my spare time and energy on over the last year and a half. I've really been wanting to move over to working on a Jedi Knight 2/Jedi Academy codebase, though, and am hoping to finally get started on that soon.

On that note, yeah, the JK2/JA source was finally released under GPL after the effective death of LucasArts. Briefly. I couldn't believe it. There are still cool people lurking at Raven that haven't had their souls carved out. But it would seem as though some asshole(s) at some company (who knows which, given how many have their fingers in some part of the pie there) got their panties in a bundle, because the code was mysteriously pulled shortly after being put up on SourceForge. I don't know what actually transpired, but it's typical for someone in that structure of corporate suffocation to try to do something good only to have a finger or two chopped off for their effort. At least the code is out in the wild now, though, and I'm going to do something with it at some point.

Back on the topic of Noesis, it's had a lot of updates. I finally got around to making a workable material rendering system on the NoeGL side of things, which led to more material rendering features with stuff like environment maps, specialized skin and hair shaders, and a lot more random junk. It still leaves a lot to be desired, and ultimately I'd like to have a Noesis shading language that's supplied as part of the format/tool/etc. script/plugin and interpreted as needed in the native rendering module/content exporter. The amount of work for that to happen hasn't been justified yet, though, since the people writing Noesis scripts out there have barely begun to use the full functionality of the material system. chrrox finally had an excuse to use material expressions the other day, I'm pretty sure he was the first person to do it. Myself included. (although I did use it once in a native plugin)

A character from Vanquish making use of new Noesis material features.
A character from Vanquish making use of new Noesis material features.

I also added a whole set of functions and data types for various types of splines and keyframed animation. The spline stuff hasn't gotten a lot of use that I know of, although there's a tool script up on the official repository that generates giant cubic environment mapped mesh letters by evaluating a built-in spline font.

Fang, also making use of new Noesis material features.
Fang, also making use of new Noesis material features.

I've really added too much crap to Noesis to go into real detail here without spending 5 hours writing a giant badly-organized wall of text, so here's a bullet list of some of my favorite features that have been added since I last updated.
  • FF12 model and animation support. The animation ended up happening in two parts, and was finally completed very recently when I went back and figured out the rest of the channel format.
  • Keyframed animation support, as mentioned above. You can feed keyframed animations to Noesis directly, or feed them to a variety of processing/combiner functions.
  • Dozens of new material properties.
  • A new semi-maintainable fragment/vertex program pipeline. The thing that generates programs is actually a Noesis plugin itself.
  • Completely overhauled the NJCM loader, making it much more stable and capable of handling pretty much any NJCM out there. Also added support for NMDM animations.
  • Redid large parts of the GMO loader to make it suck a lot less, and moved it over to the newer RPGeo interface.
  • Added a pixel picker, enabled in the data viewer under Persistent settings->View. This is a bit of a hidden feature that no one really knows about, but it's extremely useful for looking at DXT data because it shows you the raw block data and the interpreted pixel color concurrently.
  • Exposed Python API functions for unpacking PS2 VIFcode, and decoding PSP vertex flags. Much faster than trying to do either of these commonly-necessary (for those platforms) things in actual Python, and makes scripts much more readable.
  • Support for pretty much every 3D format (models, animations, levels) used in Jedi Knight and Mysteries of the Sith.
  • As usual, support for dozens of other new game model/texture/animation/etc. formats.
The official Noesis repository also recently exceeded 150 scripts, after finale00 finally committed his rather large body of work.

I'd also really like to start a Noesis documentation project at some point. It's very desperately needed. I've spent many hours helping chrrox figure out how to do stuff in private conversations, and it would probably be a good idea to translate my many braindumps into some sort of workable documentation with example usages. Noesis has gotten large enough that fully documenting it would probably end up being something like a solid 1-2 weeks worth of man hours.

Well, I guess that covers everything I feel like talking about. I'll continue to update my Twitter account whenever I do something that I feel is worth mentioning.


38 comments in total.
Post a comment


Qracker Jack Quake

December 7, 2013 at 8:49 pm (CST)
Super work :D


Rich Whitehouse

December 6, 2013 at 7:44 pm (CST)
I only handle Quake/Half-Life .map files in Noesis, so if it's a Q3 .map file, it isn't supported. I can't recall the differences between them offhand, I think Q3 uses a different texture matrix format or something. You could always just go from the compiled bsp to obj instead, working with brushes as triangle geometry is pretty gross already, so it might even be preferable depending on what your purpose is.

To the guy over in the DNF post: I don't remember, honestly. If it can find that megawhateveritwas archive it should be able to load materials, although materials for some models might be iffy, as I was only guessing at a few things for parsing them. I only went in and disassembled DNF to figure out its crappy attempt at encryption and a few other minor details.



December 5, 2013 at 2:31 pm (CST)
Glad to see you're alive and posting. Is there anyway I can get Noesis to export .map files as an OBJ with some sort of texture information? The GTK Radiant OBJ exporter ignores texture unfortunatly :(


Rich Whitehouse

November 23, 2013 at 5:41 pm (CST)
Hey Cai, I'm glad you're still alive too. What are you up to these days? Is there any communal place you hang around? I think I still have you on Steam. That's the only way I have of communicating with Hondo now as well.

I'm not sure who that was. It could be Alan. But you never know, there are a lot of stupid people in the world.



November 23, 2013 at 9:49 am (CST)
Hey Rich, long time no see. Congratulations on being married and not being dead and having a career and everything!

Is that last comment Alan or someone equally whiny? If it's Alan then fuck off, Alan.


Sad Little Man

November 22, 2013 at 12:16 am (CST)
I wish I could do things like other people, but all I can do is hide. From life, from the world. But even though I'm going to die sad and alone, won't you please pay attention to me?


Rich Whitehouse

November 20, 2013 at 7:54 pm (CST)
Indeed. I'm glad there's still someone out there keeping faith that I'm not dead yet. And thanks!



November 18, 2013 at 3:27 pm (CST)
It lives! I knew there was a reason I hadn’t booted this site’s RSS feed off my bookmarks yet. Congrats on the marriage, man, great to see some updates again.

Comment Pages:
Previous ... 1 2 3 [4] 5 6 ... Next

Post a comment


Enter the following (refresh if you can't read it):
Read image


2555245 page hits since February 11, 2009.

Site design and contents (c) 2009 Rich Whitehouse. Except those contents which happen to be images or screenshots containing shit that is (c) someone/something else entirely. That shit isn't really mine. Fair use though! FAIR USE!
All works on this web site are the result of my own personal efforts, and are not in any way supported by any given company. You alone are responsible for any damages which you may incur as a result of this web site or files related to this web site.