Home Coding, Scripting, Shaders

Tech Artist - What are you working on: FOREVER Edition!

13456756
polycounter lvl 19
Offline / Send Message
Brice Vandemoortele polycounter lvl 19
Moderator note:if you want a higher chance for being front-paged, make a topic and include the link in your reply.

I've seen a lot of cool threads around here recently, from LitSpheres to Snow blending shaders etc...
It's a pity we wait to have proper finalized stuff to show it...
So what about a technical wip thread?
I also stumble upon tons of cools papers but i never share with anyone...

There was a similar one at tech-artists.org but there's just too few users.. Is polycount big enough? We'll see

I've been lazy for almost a year, but we have to start with something right? SO, I dug up some stuff

Spherical lights:
Some might remember these endless talks about how point light have no accurate specular blablabla, so I came up with this simple model where lights have a defined radius. (http://www.mentalwarp.com/~moob/show/polycount/sphereLights.jpg)
I recently updated this shader to generate a procedural floor reflection and to take the new model into account into the diffuse contribution, and not only specular.
Yes it is expensive as hell, but i was bored at Xmas, forgive me: lights are calculated in a loop in the pixel shader, and the process is done a second time just for the floor (even tough in a simpler manner: no normal, no spec) (yes i cheated there is precomputed occlusion/shadows)
sphericalLightsWithGroundjpg

Multilamp BRDF shader, yay!:
multilampBRDFjpg

I've been working with unity on iPhone, which only supports 'Sphere Map' instead of regular cube. So i had to write a shader to transform cubes into this funky oldschool format:
sphereMapjpg.

Some of my recent work at CCP got released not so long ago:
[ame]
- procedural moons (i did selfshadowing craters at first, but it's not very old cards friendly...)
- animated gaz giants with moving clouds
- planetary rings with procedural cast shadow


Let me see your stuff now

Replies

  • MoP
    Offline / Send Message
    MoP polycounter lvl 18
    Nice stuff, and good idea Brice! :)

    I've got a couple of WIP MEL scripts and Maxscripts, will see if I can grab any useful screenshots tomorrow and maybe polish one or two ready for release.
    A maxscript LWO importer, a Maya "OBJ bits box" and some random UV tools I think...
  • commander_keen
    Offline / Send Message
    commander_keen polycounter lvl 18
    Good idea, and really nice planets.
  • Lamont
    Offline / Send Message
    Lamont polycounter lvl 15
    I just got random MEL's I kick out, and messing with adding custom attributes to things. Was tooling around with a Hammer material exporter.

    I tried the LWO importer for MEL and it never worked, but maybe now since I have a better understanding, I can take it on again.
  • renderhjs
  • Sage
    Offline / Send Message
    Sage polycounter lvl 19
    renderhjs that's looks great!
  • Pedro Amorim
    yeah! looks awesome!
  • bugo
    Offline / Send Message
    bugo polycounter lvl 17
    please guys, stick this
  • Seaseme
    Offline / Send Message
    Seaseme polycounter lvl 8
    that is pretty nifty RenderHJS!
  • Slum
    Offline / Send Message
    Slum polycounter lvl 18
    Awesome stuff in here. I support a sticky - though, somebody needs to seriously do something about the page-long string of stickies we have already. It's a bit much.

    I've been working on a lot of windows tools lately. The most promising is a sort of pie-launcher, very similar to the one in Maya, or Modo. Or if you have a Wacom Intuos4, it's a bit like that one.

    It's used for launching files, apps, etc.

    I got busy with some work crunch so I had to put it aside, but I'm going to pick it up again soon. I'm just about ready to start having people test it.
  • arrangemonk
    Offline / Send Message
    arrangemonk polycounter lvl 17
    @Render
    if its not already implemented could you do a snap to pixel center function for finished layout,
    (selects all vertexes and snaps it to a pixelcenter given the dimension of the map)

    (input height with button output -> snapped)
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 18
    right now I work on a Lua script that generates maxscript code for UI layout stuff. So that I can use a pair of .ms and .lua file to generate an output .ms file with rollout code.

    the lua file describes the content (widgets...), and I can have some fun with automatic layout management.
  • jerry
    I foresee lots of awesome in this thread :D

    Personally I'm working on a 2d unity3d clone for XNA. It's not really pimpready though :P, maybe in a few months.
  • kodde
    Offline / Send Message
    kodde polycounter lvl 19
    Trying to learn World Machine 2 as a tool for RTS level editing. I gotta say I'm really starting to love working with node based apps like these. Slowly getting there, need to add output nodes for a heighfield and texture masks.

    Anyone have any cool to share regarding WM2?

    The coloring of the terrain is just for preview purposes, to see how my masks will work.

    WM2_testproject02.jpg
  • renderhjs
    Offline / Send Message
    renderhjs sublime tool
    @kodde : the size of your GUI scares me, that looks like something for a touch screen used with only thumbs. Seriously its like 4x bigger than my UI stuff in windows
  • kodde
    Offline / Send Message
    kodde polycounter lvl 19
    Resized to not get really widescreenish screenshots ;)
    I use one monitor at home, at 1920x1080, I don't work with the nodes that small.

    But yeah, Windows 7 default or whatever. Can't be arsed to change what I don't find broken.
  • seforin
    Offline / Send Message
    seforin polycounter lvl 17
    renderhjs Thats a amazing new tool your working on,

    I do have a question though, would it be possible to have it export out at preset sizes already? I noticed it was at a lower rez (800X800) when you brought it back into photoshop,

    Is it possible to keep it for higher end detail when copying over so if your texturing lets say a 2048 based model etc It gets good pixel depth? Or are those all in the works right now? :D
  • renderhjs
    Offline / Send Message
    renderhjs sublime tool
    seforin wrote: »
    renderhjs Thats a amazing new tool your working on,

    I do have a question though, would it be possible to have it export out at preset sizes already? I noticed it was at a lower rez (800X800) when you brought it back into photoshop,

    Is it possible to keep it for higher end detail when copying over so if your texturing lets say a 2048 based model etc It gets good pixel depth? Or are those all in the works right now? :D
    I could filter out only the visible faces of the 3d model and calculate for those the used triangle UV space within the texture size (similar to how I computed texel sizes) . This would mean that I'd have the pixels area visible in the view but in texture space.
    With that again I could compute a scale ratio (by comparing visible texture space and screen view space) and scale the perspective output by that. I think I will add that, that might be a nice way to go to determine the optional size for painting on based on the texture size.
    I will add some checkbox for switching to either viewport renderer or CPU renderer.
  • seforin
    Offline / Send Message
    seforin polycounter lvl 17
    renderhjs wrote: »
    I could filter out only the visible faces of the 3d model and calculate for those the used triangle UV space within the texture size (similar to how I computed texel sizes) . This would mean that I'd have the pixels area visible in the view but in texture space.
    With that again I could compute a scale ratio (by comparing visible texture space and screen view space) and scale the perspective output by that. I think I will add that, that might be a nice way to go to determine the optional size for painting on based on the texture size.
    I will add some checkbox for switching to either viewport renderer or CPU renderer.

    yeah if they stood at set res's that you could calculate based on 128X128, 256 X256 Etc that would work great...though would it work with odd set dimensions? Like 128X256?
  • Frump
    Offline / Send Message
    Frump polycounter lvl 12
    I think some of the stickies were actually removed from the top of the section since yesterday. Maybe the Polycount overlords are making room for something?:)

    This is a great thread idea and I've enjoyed reading it so far. Hopefully it continues to grow.
  • cw
    Offline / Send Message
    cw polycounter lvl 17

    Some of my recent work at CCP got released not so long ago:
    http://www.youtube.com/watch?v=InimDSMVHiY
    - procedural moons (i did selfshadowing craters at first, but it's not very old cards friendly...)
    - animated gaz giants with moving clouds
    - planetary rings with procedural cast shadow


    The new eve stuff is lovely! Round of applause for you. :)
  • monster
    Offline / Send Message
    monster polycounter
    Great work guys.

    I have and always will be working on my coolRIG system.
    [ame]http://www.youtube.com/watch?v=bzXsGeBjv50[/ame]
  • rasmus
    that's a very nice looking set of rigging tools, monster!
  • mLichy
    wow, that rigs pretty sick :D
  • killingpeople
    Offline / Send Message
    killingpeople polycounter lvl 18
    Instant classic thread! Great idea. <3
  • Ryan Smith
    Offline / Send Message
    Ryan Smith polycounter lvl 11
    This needs to be sticky'd ASAP
  • uneditablepoly
    Wow only a page and I already see some amazing tools! Nice work guys.
  • ZacD
    Offline / Send Message
    ZacD ngon master
    I kinda wish I had max to try out that coolrig.
  • Richard Kain
    Offline / Send Message
    Richard Kain polycounter lvl 18
    I've been doing a lot more programming recently, so I like the idea of a thread for technical pimpery. Of course, my own efforts are rather simple fare. I'm sticking to more 2D game programming at the moment. I recently programmed a lip-sync class to use with the Flixel flash engine.

    Flixel Lip-Sync Example
  • Necromantique
    I've been working on a photoshop script that exports adjustment layers and then allows you to use them in shaders. Currently I only use it for a max viewport shader. This allows you to have the exported post effect from photoshop applied in real time to your viewport.
    Altough the exported table should also be usable in other real time 3D apps/games.

    post_ps.jpg

    Most adjustment layers are currently supported including different layers stacked using various blend modes.
  • renderhjs
    Offline / Send Message
    renderhjs sublime tool
    posted a preview release of TexTools 3.0 that includes the recent camera painting script.
    http://boards.polycount.net/showpost.php?p=1056535&postcount=665

    Several things have been tweaked for the script:
    • non visible faces (backface culling) will not be rendered in the texture map and instead have a magenta color (255 0 255) that you need to filter out in Photoshop (can't copy transparent bitmaps to the clipboard).
    • only after successful operations the radio button for the other operation is switched. For example if you forget to copy the painting back to the clipboard it will give you a warning message.
    • a camera object is created for security reasons. Once in the scene it will be reused and transformed each time you take another viewport snapshot. That way should you by accident move the view it still refers to the former view because it uses always to that camera when rendering to a texture map (used for the camera map material).
    all in all a nice script where you don't have to worry to much.

    This weekend I will try to capture some workflow video of a nicer example while trying to extend a scene with custom paintings for different views. It should be the perfect way for me to test it.
  • Peris
    Offline / Send Message
    Peris polycounter lvl 17
    renderhjs wrote: »
    posted a preview release of TexTools 3.0 that includes the recent camera painting script.
    http://boards.polycount.net/showpost.php?p=1056535&postcount=665

    Several things have been tweaked for the script:
    • non visible faces (backface culling) will not be rendered in the texture map and instead have a magenta color (255 0 255) that you need to filter out in Photoshop (can't copy transparent bitmaps to the clipboard).
    • only after successful operations the radio button for the other operation is switched. For example if you forget to copy the painting back to the clipboard it will give you a warning message.
    • a camera object is created for security reasons. Once in the scene it will be reused and transformed each time you take another viewport snapshot. That way should you by accident move the view it still refers to the former view because it uses always to that camera when rendering to a texture map (used for the camera map material).
    all in all a nice script where you don't have to worry to much.

    This weekend I will try to capture some workflow video of a nicer example while trying to extend a scene with custom paintings for different views. It should be the perfect way for me to test it.

    Damn awesome, trying out the camera painting right now!
  • Slum
    Offline / Send Message
    Slum polycounter lvl 18
  • Brice Vandemoortele
    Offline / Send Message
    Brice Vandemoortele polycounter lvl 19
    very very cool Slum :) but what exactly are we looking at?
    Looks like a gras/fur surface shader where the direction is the derivative of an accumulation buffer

    @Richard Kain, that's pretty awesome too, illusion is there :)
  • Peris
    Offline / Send Message
    Peris polycounter lvl 17
    renderhjs:

    I just did a quick test of your camera mapping script:

    cameramap.jpg

    It's working really smooth, very easy to use, thanks a lot man! There's a lot of potential with this :), I feel like I'm making 3d concepts now!
    Do you have any plans for making it so textures can be baked down with alpha? So It would be possible to work in layers instead, like you only bake out what you painted in the latest step.
    Another Thing that I'm missing right now is some padding on the baked out texture, I usually bake down with 32 pixels padding or so to avoid any ugly visible mipping seams.

    *EDIT* nevermind, I see there actually is some padding, i just baked out on such a huge texture I didn't even notice it :). Is there a way to set it to more padding?

    *EDIT2*: Another thing that would be nice if it's possible to specify the size of the view to be rendered out, like with my example it would be useful if I could render it out larger than my screen size, to preserve as much detail as possible when I'm painting over it in photoshop.
  • renderhjs
    Offline / Send Message
    renderhjs sublime tool
    @Peris: Thx for testing and nice example. To answer your questions:
    1. padding:
      can be defined by changing the input value next to the tiny "G" (for grabbing texture size info). Its the padding size value, change that value to lets say 32. The other 2 input textfields are the width and height of the RTT texture size.
    2. render size
      I still have to evaluate some options for that, because I don't know if I can setup a custom viewport or preview rendering size. Otherwise I'd have to go for rendering using the software renderer which might actually be more precise (filtering,...).

    There are many things that could be improved and added like :
    • a scanline or MR render instead of a viewport grab
    • transparency things (won't work with the clipboard but in that case stuff would have to be stored in files instead)
    • capture just wireframe (either perspective view or UV view)

    Some bigger issue I noticed myself was the lack of proper filtering especially if you have lots of small uv- shells. So I worked on this light match to view script that will create a shadowmap that I can use to filter out invisible elements from that view in the rendered RTT texture map.
    mask_out_view.jpg
    Before it was only removing backface culled faces but not areas outside the camera or hidden by other objects in front. Using this technique there should be a very nice masked area instead of wrapping and looping stuff around like now.
  • Chai
    Offline / Send Message
    Chai polycounter lvl 18
    I wrote a llittle photoshop script which toggles between dodge and burn. :)
    Download it Here - simply extract to photoshop directory.
  • Rhinokey
    Offline / Send Message
    Rhinokey polycounter lvl 18
    Chai wrote: »
    I wrote a llittle photoshop script which toggles between dodge and burn. :)
    Download it Here - simply extract to photoshop directory.

    doesnt pressing alt toggle between dodge and burn by default?

    do ppl use dodge and burn much? i rember i used it back when i first started texturing but after i learned a bit more i've never touched it cept for very specific things
  • Chai
    Offline / Send Message
    Chai polycounter lvl 18
    Rhinokey wrote: »
    doesnt pressing alt toggle between dodge and burn by default?

    do ppl use dodge and burn much? i rember i used it back when i first started texturing but after i learned a bit more i've never touched it cept for very specific things

    Most people don't use this, but I use it extensively for metal.
    It helps me fake reflection when only specular is available, and unfortunately I can't find an alternative to this time consuming method. (so this script helps me a bit)

    AS for Alt, it only switched the tool but not the settings, so if you're like me and set dodge to highlights alt would ignore that.
  • MoP
    Offline / Send Message
    MoP polycounter lvl 18
    Yeah that always annoyed me about Dodge/Burn... I don't use it all that much but when I do I have to keep changing the mode instead of pressing ALT since I have dodge on highlights and burn on shadows, and ALT doesn't respect that.
  • kodde
    Offline / Send Message
    kodde polycounter lvl 19
    Dodge/Burn got reworked a bit in CS4, now able to "protect tones" better. You won't get that washed out look any more. Still wont give you any color variations though.
  • Chai
    Offline / Send Message
    Chai polycounter lvl 18
    Wrote another useless photoshop CS3 script :)
    This one toggles between standard and full screen (with menu bar), instead of cycling between all the modes. (I only use these two anyway)
    Download qToggles_v0.2

    I wanna see if I can somehow map these two scripts to normal keyboard keys like O and F.
  • roosterMAP
    Offline / Send Message
    roosterMAP polycounter lvl 14
    Im wkin on a really ambitious project! trying to get a pre-rendered trailer together to prommote the project and get recruits.
  • Emil Mujanovic
    Offline / Send Message
    Emil Mujanovic polycounter lvl 18
    Awesome sticky!
    It's just a pity that the two things I want to mess around with is for Max only (TexTools and coolRIG).
  • commander_keen
    Offline / Send Message
    commander_keen polycounter lvl 18
    This is something I made a long time ago. Its a floating toolbar for max with customizable buttons. Its source files are stored completely separate from the 3ds max install directory so its really easy to setup with a version control system.

    I currently have it setup with version control at work so if someone adds a button and checks it in the next time another user gets latest they will have the new button, and that user can hide the button with a right click menu if they dont like it. It also automatically generates macroscripts for each button so you can bind any button to a hotkey.

    keentoolbar03.jpg

    Heres an example code for a button.
    ButtonTooltip = "Colapse the modifier stack for each selected object.nHold Shift to colapse and convert to EditablePoly."
    ButtonImage = "ColapseStack.psd"
    ButtonSize = 2
    ButtonNoDelete = true
    fn ButtonExpression = (
    	Shift = keyboard.shiftPressed
    	for i in selection do (
    		maxOps.CollapseNode i off
    		if ((Shift and classof i != Editable_Poly) or classof i == Editable_mesh) then (
    			convertTo i PolyMeshObject
    		)
    	)
    )
    

    You can also simply use the filein function in the button expression to trigger a more advanced action like this:
    fn ButtonExpression = (
    	filein (KT.ToolsDir+"MyMoreAdvancedScript.ms")
    )
    
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Woah keen, I have been dreaming for that for the last 6 months hehe
    Will try asap! I am tired of the huge default max toolbar buttons...
  • commander_keen
    Offline / Send Message
    commander_keen polycounter lvl 18
    pior, I havent released it publicly yet because it contains a few Cryptic specific tools and some scripts that dont belong to me. For a public release I would also want to have some kind of builtin button sharing over the internet.
  • renderhjs
    Offline / Send Message
    renderhjs sublime tool
    he he :)

    toolbars.jpg

    so how does one configure the layout and the set of buttons, is it within a maxscript file or some use of ini or xml files? Resembles a bit what I tried to start some time ago with MZPrucksack
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    aaah snap I got too excited, I thought you had it out already!
    Render, how does your script behave so far? Last time I checked it out it looked a bit complex to setup. Honestly if Max allowed custom sized icons and expandable/collapsable toolbars it would be close to perfect ...
  • commander_keen
    Offline / Send Message
    commander_keen polycounter lvl 18
    renderhjs, mines bigger than yours! :D If you look closely one of the buttons in mine opens your uv tools ;) The buttons are organized onto subfolders, in this case Cryptic, Transform, Modifiers, Modeling, and maxscript. There is an ini file that defines what order the button sets are in, and then an optional ini file within each set that defines the button order within that set.

    Also all the button icons are modified with an overlay shading image when the toolbar loads, and non-square images will be automatically rotated if the user has the toolbar set to be horizontal instead of vertical. There is also a library of common code for things like string parsing, bitmap manipulation, and array stuff.
  • Brice Vandemoortele
    Offline / Send Message
    Brice Vandemoortele polycounter lvl 19
    I've been looking into realtime IBL in maya for some time now, and I just realized there was nothing wrong with my code: HDR images just won't work properly using cgfx, but they DO using hlsl FX files.
    So directX is winning again here, but not because it's awesome, just because of the lazy fuckers in the other team.. grmlml
13456756
Sign In or Register to comment.