Posts Tagged ‘eyeon’

Fusion : hos_SplitEXR v1.1

Thursday, October 29th, 2009

Updated the script to incorporate some features and fixes that where suggested by Stefan from südlich-t.

Added mapping of XYZ channel names to RGB.
Added a GUI with the placement option that handles the placement of split loaders (have not figure out how to grab these options from the user preferences yet.)

I will add the ability to choose what should happen with certain channel data mapping wise, and i will add an option to map Z channel data to either the RGB channels or the actual Z channel.

Keep posting any strange behaviour of course.

visit the original post for the update

Fusion : 64bit plugins available

Friday, August 7th, 2009

Finally found a nice cheap good old Visual Studio 2005 Standard edition for my 64bit compiling needs.

Just quickly posting the download links in this post, going to do some restructuring of the site as well to make plugin updates and downloads a bit less messy and to get a better overview of what is available.

download : HoS_PixelMapper x64

download : HoS_MayaToxic2DMV x64

download : HoS_Tonemapper x64

download : HoS_Negative x64

Fusion : IBC 2008 presentation NL3 leader.

Thursday, July 30th, 2009

In case you missed it, Eyeon posted a presentation i did during IBC 2008 on their YouTube channel.

Fusion : HoS_PixelMapper.plugin v1.1 update

Monday, June 22nd, 2009

Been using the plug-in a bit and added some  features and made some changes (some of which change the resulting output to the previous version.)

changes v1.1

  1. Added a Flip X, Flip Y and Rotate option so it is possible to flip the mapping image or rotate it in 90 degree steps (these operations happen before the cropping feature.)
  2. Center Position X-axis inverted so it now is easier to place your mapping image.
  3. Alpha is used as well now (this one seemed to have slipped through and i noticed it only till the last job.)
  4. When using a 8/16-bit integer image as UV map now works as well (not sure why you would want this, but hey, better save than sorry.)

visit the original post to download the latest version.

Fusion : hos_SplitEXR.eyeonscript

Thursday, June 18th, 2009

Fusion 6 is out, and i wanted to test something that has been gathering dust on my harddisk because the script simply could not be done natively in Fusion 5.

But here’s a quick prototype on a script that takes a multi channel EXR file and creates new loaders with the same EXR file but assigns groups of channels accordingly to the RGBA channels so it is  ready for easy comping.

Now this is as i said, a prototype, it requires an EXR file that contains channels like the channel names in the example file below (rendered with Autodesk Maya passes), there’s no GUI, it doesn’t do any error checking or anything fancy to check for channels that can or can’t be grouped.

Should the script fail and your comp seems to stop working or responding, try typing the following in the command line (it means it failed between the locking and unlocking of your comp and is thus locked and needs to manually be unlocked again)

comp:Unlock()

download : hos_SplitEXR_v1.2.zip

download : hos_SplitEXR_v1.1.zip

download : hos_SplitEXR_v1.0

download : fusion_6_passes.exr

changes v1.2

  1. Added a TOOLST_Clip_FormatName check to fix the ’attempt to index global ‘tool’ (a nil value)’ error.

changes v1.1

  1. XYZ channel data is now recognized and mapped to RGB channels
  2. Added a GUI where you choose how the split EXR loaders are placed (Horizontal or Vertical)

changes v1.0

  1. Prototype and initial release

splitexr

Fusion : hos_incrementalSave.eyeonscript update

Monday, June 15th, 2009

Updated the incremental save script for Fusion to version 1.1.

The following changes where made:

  1. Creating the backup incremental file now uses the os.rename function to move the file, this worked in Lightwave and seems to behave the same in Fusion, this prevents the DOS box popup on saving.
  2. Renamed the script to match our other script and plugin naming conventions.
  3. Encapsulated the DOS file names in quotation marks to make creation in and of directories with spaces possible.

visit the original post for the update

Fusion : hos_incrementalSave.eyeonscript

Thursday, June 4th, 2009

eyeonfusion120Here’s a script that mimics the way Autodesk Maya handles incremental saving of scene files.

Basically what it does is create a directory (if it is not already there) called incrementalSave in the directory your comp is located, in the incrementalSave directory another directory is created with the exact same name as your comp (including the extension)

Finally when both directories exist, the script copies your old scene file to the incrementalSave\compname directory and adds a 4 digit versioning number between the file name and the extension, separated by a ‘period’.

Every time you save, the directory structure is checked, and the script checks what the next highest versioning number should be, your old comp is copied, and the comp is saved (this way your final comp will always have the same name, where as you ‘backups’ are the only files that get incremented.)

The script has not been tested to death yet, so if you find anything, let me know.

Also, i have no idea whether or not this will play merry hell with Generations (as i have no idea whether or not Generations has a build in incremental saving system.)

Another thing you will notice is, that since this script copies the versioning file using the os.execute command, a DOS pop-up will appear for a couple of milliseconds, this is as far as i know, unavoidable, if someone however knows another way, please let me know.



Version 1.2 changelog:

  1. Changed the incremental save file pattern matching.

download : hos_incrementalSave_v1.2

.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
--[[
 hos_incrementalSave
 
 by S.Neve / House of Secrets
 
 some small updates from the inital release:
 
 v1.2 changes:
 - Changed the way the postfix increment number for the incremental backup comp
 is searched for, as in the older version a name like 'vfx_shot_01_31-448.comp
 would break the gsub expression for some unknown reason, returning a nil value.
 
 v1.1 changes:
 - creating the backup incremental file now uses the os.rename function to move
 the file, this worked in Lightwave and seems to behave the same in Fusion,
 this prevents the DOS box popup on saving.
 
 - renamed the script to match our other script and plugin naming conventions.
 
 - encapsulated the DOS file names in quotation marks to make creation in and
 of directories with spaces possible.
 
 v1.0 changes:
 - Initial release
 
]]--
 
function findpattern(text, pattern, start)
 return string.sub(text, string.find(text, pattern, start))
end
 
fa = composition:GetAttrs()
if fa.COMPS_FileName == "" then
 Save()
else
 pf = eyeon.parseFilename(MapPath(fa.COMPS_FileName))
 
 if not direxists( pf.Path .. "incrementalSave" ) then
 print("creating dir : " .. pf.Path .. "incrementalSave")
 os.execute("mkdir \"" .. pf.Path .. "incrementalSave\"")
 else
 --print("dir exists")
 end
 
 if not direxists( pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension ) then
 print("creating dir : " .. pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension)
 os.execute("mkdir \"" .. pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\"")
 else
 --print("dir exists")
 end
 
 -- search inc saves
 path = pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\\*.comp"
 dir = readdir(path)
 num = table.getn(dir)
 currentVersion = 0
 
 for i = 1,num do
 if not dir[i].IsDir then
 fileExtension = string.gsub( dir[i].Name, "[.][^.]*$", "")
 --fileNumberString = string.gsub( fileExtension, string.gsub( fileExtension, "[^.][0-9]+$", ""), "")
 fileNumberString = string.sub(fileExtension, string.find(fileExtension, "(%d+)$", 0))
 fileNumber = tonumber( fileNumberString )
 --print(fileNumberString)
 --print(fileNumber)
 if currentVersion < fileNumber then
 currentVersion = fileNumber
 end
 end
 end
 currentVersionString = "000" .. tostring(currentVersion + 1)
 currentVersionString = string.sub(currentVersionString, string.len(currentVersionString) - 3 , string.len(currentVersionString))
 
 dest =  pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\\" .. pf.Name .. "." .. currentVersionString .. ".comp"
 src =  pf.Path .. pf.Name .. pf.Extension
 os.rename(src, dest) -- this seems to work in Lightwave, and does the same in Fusion, much cleaner isn't it?
 Save(src)
end

Version 1.1 changelog:

  1. Creating the backup incremental file now uses the os.rename function to move the file, this worked in Lightwave and seems to behave the same in Fusion, this prevents the DOS box popup on saving.
  2. Renamed the script to match our other script and plugin naming conventions.
  3. Encapsulated the DOS file names in quotation marks to make creation in and of directories with spaces possible.

download : hos_incrementalSave v1.1

.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
--[[
  hos_incrementalSave v1.1
 
  by S.Neve / House of Secrets
 
  some small updates from the inital release:
 
  v1.1 changes:
    - creating the backup incremental file now uses the os.rename function to move
    the file, this worked in Lightwave and seems to behave the same in Fusion,
    this prevents the DOS box popup on saving.
 
  - renamed the script to match our other script and plugin naming conventions.
 
  - encapsulated the DOS file names in quotation marks to make creation in and
    of directories with spaces possible.
 
  v1.0 changes:
  - Initial release
 
]]--
 
fa = composition:GetAttrs()
if fa.COMPS_FileName == "" then
    Save()
else
    pf = eyeon.parseFilename(MapPath(fa.COMPS_FileName))
 
    if not direxists( pf.Path .. "incrementalSave" ) then
        print("creating dir : " .. pf.Path .. "incrementalSave")
        os.execute("mkdir \"" .. pf.Path .. "incrementalSave\"")
    else
        --print("dir exists")
    end
 
    if not direxists( pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension ) then
        print("creating dir : " .. pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension)
        os.execute("mkdir \"" .. pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\"")
    else
        --print("dir exists")
    end
 
    -- search inc saves
    path = pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\\*.comp"
    dir = readdir(path)
    num = table.getn(dir)
    currentVersion = 0
 
    for i = 1,num do
        if not dir[i].IsDir then
            fileExtension = string.gsub( dir[i].Name, "[.][^.]*$", "")
            fileNumberString = string.gsub( fileExtension, string.gsub( fileExtension, "[0-9]+$", ""), "")
            fileNumber = tonumber( fileNumberString )
            if currentVersion < fileNumber then
                currentVersion = fileNumber
            end
        end
    end
    currentVersionString = "000" .. tostring(currentVersion + 1)
    currentVersionString = string.sub(currentVersionString, string.len(currentVersionString) - 3 , string.len(currentVersionString))
 
    dest =  pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\\" .. pf.Name .. "." .. currentVersionString .. ".comp"
    src =  pf.Path .. pf.Name .. pf.Extension
    os.rename(src, dest) -- this seems to work in Lightwave, and does the same in Fusion, much cleaner isn't it?
    Save(src)
end

download : incrementalSave v1.0

.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- incrementalSave v1.0
-- by S.Neve - House of Secrets 03-06-2009
-- for latest version, check http://www.svennneve.com
 
fa = composition:GetAttrs()
if fa.COMPS_FileName == "" then
    Save()
else
    pf = eyeon.parseFilename(MapPath(fa.COMPS_FileName))
 
    if not direxists(pf.Path .. "incrementalSave") then
        print("creating dir : " .. pf.Path .. "incrementalSave")
        os.execute("mkdir " .. pf.Path .. "incrementalSave")
    else
        --print("dir exists")
    end
 
    if not direxists(pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension) then
        print("creating dir : " .. pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension)
        os.execute("mkdir " .. pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension)
    else
        --print("dir exists")
    end
 
    -- search inc saves
    path = pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\\*.comp"
    dir = readdir(path)
    num = table.getn(dir)
    currentVersion = 0
 
    for i = 1,num do
        if not dir[i].IsDir then
            fileExtension = string.gsub( dir[i].Name, "[.][^.]*$", "")
            fileNumberString = string.gsub( fileExtension, string.gsub( fileExtension, "[0-9]+$", ""), "")
            fileNumber = tonumber( fileNumberString )
            if currentVersion < fileNumber then
                currentVersion = fileNumber
            end
            print( currentVersion )
        end
    end
    currentVersionString = "000" .. tostring(currentVersion + 1)
    currentVersionString = string.sub(currentVersionString, string.len(currentVersionString) - 3 , string.len(currentVersionString))
 
    filename = pf.Path .. "incrementalSave\\" .. pf.Name .. pf.Extension .. "\\" .. pf.Name .. "." .. currentVersionString .. ".comp"
    os.execute("copy /Y " .. fa.COMPS_FileName .. " " .. filename)
    --Save(filename)
    Save(pf.Path .. pf.Name .. pf.Extension)
end

Fusion : HoS_Tonemapper.plugin

Thursday, May 28th, 2009

eyeonfusion120Here’s a tonemapping plug-in, still a work on progress.

It’s a tonemapper based on the Adaptive Global Luminance mapping as written in the paper ‘Comprehensive Fast Tone Mapping for High Dynamic Range Image Visualization‘ by Jiang Duan, Guoping Qiu and Min Chen.
For now i have left out the more complex linear scale histogram equalization blend curve (the math goes far beyond my knowledge so i’m brushing up on my algebra abit before i’m able to implement that feature.)

download : HoS_Tonemapper_x86

Fusion : HoS_PixelMapper.plugin

Wednesday, May 27th, 2009

eyeonfusion120Been working on this plugin last weekend, it does nothing revolutionary, basically it does the same as the default Deep Pixel Texture node, it allows you to map an image to a UV channel render.

I wrote the plugin more to learn a bit about the SDK and how the sub pixel sampling functions work (amazingly simple and incredibly well for that matter)

The only differences with the Deep Pixel Texture are that all options have viewport previews/handles and the plugin accepts UV as a Red Green image in the Background input, so you won’t need a Boolean tool to add Red Green data into a UV auxiliary channel.
It also has a crop option to pre crop the mapped image, you can also switch the view to you mapped image (to easily place crops) and you can switch to the actual cropped image.
The tool also offers different edge fill modes for pixels that fall outside the 0.0, 1.0 space of a UV map.

Another thing planned for this tool is to have an option where you can switch between using UV auxiliary channels instead of the Red Green channel, just for the heck of it.

So far, i made sure Fusion won’t explode when no inputs are present or when an input fails, but you never know, should it act funny, just let me know.

download : HoS_PixelMapper v1.1

download : HoS_PixelMapper v1.0

changes v1.1

  1. Added a Flip X, Flip Y and Rotate option so it is possible to flip the mapping image or rotate it in 90 degree steps (these operations happen before the cropping feature.)
  2. Center Position X-axis inverted so it now is easier to place your mapping image.
  3. Alpha is used as well now (this one seemed to have slipped through and i noticed it only till the last job.)
  4. When using a 8/16-bit integer image as UV map now works as well (not sure why you would want this, but hey, better save than sorry.)

changes v1.0

  1. initial release


pixelmapper

Fusion : HoS_Negative.plugin

Thursday, May 14th, 2009

eyeonfusion120And here it is ladies and gentlemen, the awesomest plug-in ever written by man, 2.5 years of research and programming, over 430.000 lines of code, strap into your seats and hold on:

The node, that inverts shit!

.

download : Hos_Negative

slicedbread_nap1