Adding to Cart…
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.You currently have no notifications.
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.
Comments
Awesome! Hit me up if you need assistance or have feature suggestions.
Hi, I recently bought Line Render 9000 during the catch-up sale, and I am absolutely astonished at how good it is! So far I have been getting consistently great results. This is, by far, the best method of rendering toon outlines in Daz Studio.
If I may make one suggestion. I think you should include an additional "Normals" cam. You see, in videogames like Borderlands, one of the methods they use to render toon outlines is to do a normals pass of the scene and then feed that through a sobel edge detection. I've been doing this myself with Line Render 9000 by importing the Edge Blend camera into Shader Mixer and replacing the Edge Blend node with a Matrix NTransform node set to "Object". So far, i've been getting the best results by combining both the Edge Blend and Normals line outputs together (and occasionally using ColourID for specific texture details**).
The only downside to this makeshift Normals cam of mine is that depending on the model, I sometimes end up with some artifacting (like, random spots here and there) that I have to erase manually in postwork. I'm not sure why this is, it's something i'll have to look further into.
**Oh, here's a fun tip. You can plug textures into the ColourID slot of the surface, and they will actually show up when doing a ColourID render with LR9000. This is great if you have certain texture based details that you want outlining (tattoos, scars, wrinkles, logos, etc). If you don't mind editing textures yourself, you'll get better results by editing said textures to have a higher contrast between areas you want outlining (saving it as a seperate copy of course).
Anyways, here's a render I did recently of ChibiBel while experimenting with LR9000. The outlines were rendered using the aformentioned Edge Blend and makeshift Normal cameras, with only minor editing to erase the mouth and jaw outlines.
Awesome tip! Thanks so much!
Thank you for sharing! I'll absolutely try that out next time I'm using this product!
Just figured i'd post an example of what you can do by plugging textures into the ColourID. Hopefully the images will be in the right order.
The first image is the Animated Male for Genesis 2 rendered with pwToon and LR9000. The lines were generated using an Edge Blend and my makeshift Normals cam, with minor postwork to remove some lines in the face. It looks fine, but the scar on his chest doesn't really "fit" the rest of the image.
The second image is a ColourID render with every surface set to white, and the chest scar texture plugged in.
EDIT: I've removed this, because the chest scar is from a Daz 3D product (LIE Wound Makeup Artist), and the way that it was rendered (on a white background mostly head on), well, it looked too similar to the unaltered texture, so i've removed that just in case.
The third image are the resulting outlines from the ColourID render with LR9000 (with line edge threshold set to 0.1).
And the fourth and final image shows it all put together. The chest scar now fits the style of the render much better.
So cool to have @TheNathanParable talking about my product. You've made some pretty awesome stuff yourself!
I never really got results I liked from proper "Normals", they always came out too "blocky" or 3d-looking (which is why I ended up settling with Fresnel). I'll maybe take a peek at the method you suggest and see how it works. If you started from a copy of an existing camera it should already be multiplying the Color by Opacity, which is necessary. One of the pitfalls that I've encountered during the development of this product is that texture opacities weren't honored if that step was skipped (one of the big failures of similar products IMO). The reason is that the 3Delight outliner is looking at the Color of the image when deciding to draw outlines. I'm not sure if you're seeing that or something different, but if you send the "main render" using that camera with the corresponding line output, I might be able to explain what's going on.
Alright, here are some pictures showing the issue I mentioned. These were made using the 3DU Toon Generations character for Genesis 3 Male (set to age 40 with the head rescaled).
First there's the Edge Blend cam, with the line threshold set to 0.2. As you can see when you zoom in, there's some artifacts around the eyes, nose, mouth, and the left armpit. Little dots that appear in what look like completely smooth areas in the raw Edge Blend pass. That said, they are relatively minor.
Then there's the makeshift Normals cam I made, with the line threshol set to 0.5. As you can see it produces some pretty nice and accurate lines (especially good for anime renders), but there are a LOT of artifacts all over the body, particularly the face, neck, chest, stomach, and hands. I don't mind going in to manually erase them when making one off images, but I can imagine this being an issue when making, say, a comic or an animation.
Now here's the most peculiar thing. So far, this has only happened with Genesis 3 Male. I had absolutely zero artifact issues with the previous renders I posted using ChibiBel and Genesis 2 Male. Not only that, but when I do use G3M, the artifacts only ever appear on his skin, and not on his hair or clothing. I've tried removing all bump/normal/displacement maps, and that didn't change anything, so it's not the textures. I've even tried resetting his shape, and that didn't change anything, so it's not the Toon Generations shape. Something about Genesis 3 Male's mesh just doesn't want to co-operate with this, and it's so weird.
Of course I haven't tried every model in existance, so there might very well be other models with artifact issues (i'll have to find some time to test this with Genesis 3 Female), but for now it really does seem to be an issue specific to G3M.
P.S Oh, and the third image is just a regular 3Delight render with the toon outlines layered on top, artifacts erased, and some colour adjustments. I thought it looked nice.
Gotcha. My first theory is that it's the different colors in the output that are causing the "noise". As you may know, the outliner is looking for differences in Color, so with a those 3 colors all coming into play I think the outliner is seeing differences between the Red, Blue, and Green, and thinking lines need to be there. That's why most of the cameras that come out of the box convert to greyscale - in order to avoid this very issue. You should be able to steal my greyscale converter block from one of the other cameras, such as Fresnel reflected v. You may notice that if you remove that block from that network you get really pretty colors as well. =)
Edit: It occurs to me that converting to greyscale and leaving it that way is probably not the best implementation, which is why you're getting cleaner lines from your camera. The background color is considered to be black for the color comparison, so that's why your camera is giving better outlines. Presumably because Blue contrasts with black more than grey does. *facepalm* I can't believe I didn't notice this until now. I guess I have more work to do in my free product update. =)
No need, it seems that I've found the solution.
Raytracing is to blame.
Both of these images show what happens when you have Raytracing turned on (left) and turned off (right). As you can see in the raw output, the version with raytracing turned on actually does have a few noticeable black spots above the lip that would obviously muck up the edge detection. However, turning off raytracing seems to result in a slightly smoother image (mostly noticeable on the bump map of the hair). This results in a much cleaner line output that fortunately doesn't seem to lose too much in the way of details. I've only tested this with the normals pass, but it's likely this may also improve renders done using the Edge Blend camera too.
Of course, the question still remains as to why Genesis 3 Male specifically has this problem, but at least there's an easy fix. :P
P.S If for some reason you can't turn off raytracing (i'm not exactly sure what it does in the context of this product), it seems that bumping up the Pixel Samples also reduces the appearance of the messy artifacts, but this will obviously lead to longer rendering times.
Thanks for digging into this!
So let's think about why raytracing could cause this - there is obviously the issue of geometry, but is it geometry only or is it its interaction with lights?
TheNathanParable, what about the lights that you were using, what were they like?
Fascinating, exciting discussion. Looking forward to product update!
As an aside, I'd love some sort of function that randomly varied the width of the line, sort of making it look slightly more drawn.
I'm guessing I could maybe do something with multiple passes and compositing, but that's... a bit much.
Unfortunately that's a constraint of the 3Delight outliner that the line thickness is constant. I've theorized getting vector graphic files which would allow for "stroking" the lines, so pens or brushes could be used to vary the thickness somewhat, but I haven't found a "good" process to get that output yet. It's also quite a bit more post-work. I wonder if using a subtle hand on a surface shader in conjunction with LR9k lines would be a way to get a more hand-drawn feel. As I've said before, the issue I've had with surface shader lines is having good control over the lines. With LR9k doing the heavy lifting for the line work, perhaps it'd be possible to use a surface shader configured to "barely draw lines" as a "line supplement" to add variance to LR9k output -- in true LR9k style, each pass would look bad on its own but when composited I could see it possibly get closer to the effect you're after.
Well, theoretically a "Normal cam" should be ignoring lights and drawing just based on the geometry, no?
Theoretically, but it's a shader mixer camera. When I don't see the source code, I prefer to check everything.
Well, in my last post I had the LR9000 renderer set to not render lights or shadows. Also this issue has come up regardless of whether I was using 3DU's Toon Generations 3Delight shaders with complex lighting, or pwToon with one Direct Light. The only true pattern, as I have said before, is that out of all the figures i've tried this happens only with Genesis 3 Male, so all I can guess is that it must be related to G3M's mesh somehow.
I see, thanks. So only G3M not G3F? And not previous generation Genesis with HD morphs applied?
I said out of the ones I've tried, and I haven't tried every figure. :P
Oh, but this list is far from including "every figure" =)
See, now that we´ve ruled out lighting, I'm suspecting HD morphs. G3M and G3F both have a number of them on by default, even in the free base version. So if G3F or a G2 character with an HD add-on doesn't have those artifacts, then HD morphs are probably out of the picture as well.
If you ever try G3F or an HD-enabled G2, it would be awesome if you posted the results.
HD morphs is a good thought. Presumably the normals will have more variance for an HD morph, so when converting to color in a "Normals cam" it means a higher frequency of contrasting colors to confuse the outliner.
I suppose an explanation for why turning off Raytracing "solves" the problem is that the results are more blurry in the output image so that level of detail isn't seen. If this theory explains it then increasing Pixel filter width would presumably help remove the artifacts as well.
Makes sense as well, if we use a smooth filter like gaussian. Something like sinc that does sharpening will "ring" at higher widths and create more artifacts.
Any thought on the notion of a script to randomly assign color IDs? Could reeeeeally use that. ;)
Depends on what you mean by "randomly". I have a script that I've been using that will assign the ColorIds in the scene for you. Select the surfaces you want to be "grouped" and then launch the script. Convenient for me since I have it set up as a right-click option in the Surfaces pane. The core idea being "I don't care what color the ColorId is, i just want it to be different".
I did some development on the other ColorId assignment things, just didn't quite finish them up.
Want to beta test them? =)
Sure!
I was thinking something along the lines of 'assign a color Id randomly to each selected object and all surfaces on it' so you can easily have a big scene where each building, person, object, etc gets outlined nicely.
or some dense forest, same
Is there something about interiors that can cause Main Camera to just... fail? I was trying to use LR9K with Scriptorium, and while fresnel worked fine, main camera kept rendering blank.
I have to say, been poking at this a lot more recently. I sort of wandered from the product to play with other stuff, but LineRender9000 does some stuff absolutely nobody else does.
ColorID lining is just... a godsend for all the places where other tools just fail.
My latest result. At base it's just a simple gray render run through a FilterForge filter to get the crosshatch pattern (which is awesome!)
Fresnel lines helped add a little more detail, though I could have lived without it if I had to.
But the ColorID-driven Main Camera lines? CRITICAL. Without them a lot of outlines would have just gone missing.
Not that I'm aware. You're referring to the 'Override ColorId surfaces' feature, right? I've noticed that sometimes it will stop assigning colors correctly (assigning most things white) until a D|S restart. By "blank" do you mean complete opacity, complete black, or complete white?
Glad to hear you say it. Yes, in my own art I use it all the time for queuing up renders without having to fiddle with so many things, even when I'm not wanting outlines. Something I've been playing with after hearing you mention the "machine-perfect" lines is using the "intermediate images" which LR9k makes to not confuse the outliner (Fresnel, Edge blend, etc) and running them through cartoon effects in post-work to generate different line styles, and so far I have to say the results have been rather promising. I've also poked a bit more at getting vector graphics out but I am still not finding a feasable way...
Yes. Last time I was working on it I restructured my code so I could use the same ColorId assignment logic for each scenario:
1. All selected surfaces get the same ColorId (complete)
2. Each object gets its own ColorId
3. Each selected surface gets its own ColorId
Theoretically #2 and #3 shouldn't be much work at this point.