Download

Quick Question: Chamfer Every Corner?

Hey guys, just had a quick question. Do you chamfer every corner of every wall, countertop, etc. in the modeling program (3ds max)? Is there another way to do it? Or is it required at all? Thanks!

If your lighting is highly geometry dependent (ie no baked from high-poly normalmaps for props and all) I’d recommend chamfers on most things you suspect will end up being in screenshots, renders and cinematics of your scene. They might be very little improvements to single objects but overall they just add a touch improved looks. When working with displacement it also helps a bit.

Depends on the budget for the job, low pay no way. :stuck_out_tongue:

Thanks for the quick response. I Just had a few outside corners and a counter to work on. I will add some chamfers on there.

Wish we had a ‘‘ray traced round corner’’ option like in corona/vray hehe! In ue4 I try to chamfer as much as possible but sometimes I’m a bit lazy!

Yeah that’s what I was hoping for! I don’t mind doing chamfers manually though. I was just hesitant about wasting time if there was an easier way.

LOL! Brilliant!

Here’s a link to the DIY manual: http://on-demand.gputechconf.com/gtc/2012/presentations/S0611-Edge-Aware-Shaders-for-RT-Computer-Graphics.pdf
Looks fairly easy. All you need to do is put some custom stuff in a material and voila! :smiley:
sigh Where’s Brian when you need him. Brian? Hello??

Yes we want this!

I’ll pm Ryan(!) so he’s at least aware of our most pressing matters.
Given they’ve already implemented this spline thicken thingy in 4.2, I reckon
we’re up for another very useful feature in terms of shading magic.

I’m sure Ryan will agree and make this happen in a heartbeat.
Well, maybe not quite that fast but a day max and we should be good to go.

The challenge here is not detecting the edges or corners or that math. The challenge is finding a place in the engine to both read and modify the gbuffer at the same time. Currently there is really nowhere in content where you have that ability so it would require some code hooks. I would have to do a bit of research and asking around to see how difficult it would be.

also fwiw, that method seems incredibly expensive. According to that paper it cost nearly 10ms. For that reason I cannot see us budgeting time to work on it.

That is sexy! Need!!!

I see :frowning: Something else maybe? If it’s relatively easy to put in the math for finding edges and corners, how far would you come by generating some kind of normal trickery out of those?
Sth along the lines of generating a new normal out of the borders of a mask, which can produce pretty nice results. Your expertise of course so just babbling here. Do you reckon it’s worth a shot?

So far the best solution I have seen is a simple max script that sort of auto chamfers and maintains crisp vertex normals.

Yes you could of course make some other solutions such as masks work, but then realize that you may not be saving much if any time from just doing the chamfer manually or with a script, plus the added complexity of having this as a ‘tech feature’ rather than built into your art means potentially more time down the line spent fixing and tweaking etc. It is important not to overlook tech debt, and I am the last person to admit that usually.

There was a really cool polycount thread about this script here that was removed for some reason so now all we have is the script. I have not yet tried it myself but it would be awesome if somebody could try it out and post back.

http://pastebin.com/f0nYU37h

edit. if there is a place to do this procedurally its probably using deferred decals. Currently looks like the compiler prevents you from using a scenetexture lookup in a decal but it might be a bug. trying a test.

Hmmm yes, totally see your point. Not sure about the script you posted. What exactly is it supposed to do? There’s plenty of scripts around that autochamfer stuff (some very good, some very bad) so I take it that’s not it.
When I run it in Max, I can’t make it do anything else then the attached screengrab. I take it that’s not what it is supposed to do though :confused: :wink:

hmm that does not look good. Sadly the link to the polycount thread that had info on the script went bad. Turns out it was closed at the request of the employer of the OP as he was posting some NDA stuff without approval.

I am afraid we are probably stuck with whatever anybody can figure out. In terms of ‘how revolutionary was this script and what exactly does it do’… I am not sure, sorry. I thought it was making the chamfers based on selected edge loops but perhaps my memory is wrong and there was an extra step.

That wouldn’t be the same as talking about alpha blended decals by any chance now would it?:rolleyes:
Would be a insane feature for sure.
http://docs.cryengine.com/display/SDKDOC2/Using+Decals+for+Destroyed+Structures
Noticed some very nice POM decals in the Showdown VR demo (albeit using old POM but still, they looked pretty cool when not under close scrutiny) but with this technique you could probably do a whole lot of cooler things.
Well…pfff, hows that for a derail of topic. Probably best for another time.

Thanks for your efforts as always Ryan!

For anyone that’s interested in best chamfer, normals and edges practises these are all interesting reads:

No, completely unrelated. And turns out the compile warning is there for a reason. If you try to suppress it you can access it but directX does not let you both read and write to the same buffer at the same time, so you just end up reading either solid color grey/black or random noise. It would require an additional buffer most likely.

edit

Those decals from showdown were actually just meshes placed over surfaces and they were made using Bumpoffset only, without any POM. its pretty similar though.