Jump to content
3DCoat Forums


  • Content count

  • Joined

  • Last visited

Community Reputation

4 Neutral

1 Follower

About Heath_3d

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Heath_3d

    Aquatic Hermit Crab

    Hi! I'd like to share an artwork I've been working on. Texturing was completely done in 3d Coat. Other aspects used Blender. I hope you enjoy. If you'd like to see clay renders and animation, check out my ArtStation page at the link below: https://www.artstation.com/artwork/w86lvw

    © Heath Freeland 2018

  2. Heath_3d

    3D-Coat 3.7 updates thread

    Hi Andrew, I've just had a look at the colored spec blend mode and find it mostly great. One problem though is that when using cube mapping(the environment shade option in the view menu) the reflections get tinted a completely different color to what is expected. Metal effects such as gold,brass and copper are especially reliant on colored spec and cube mapping used in conjunction with each other. Otherwise, I actually really like the way the blend mode system works, as it makes it very easy to check subtleties by switching back and forth between colored spec and standard blend modes.
  3. Heath_3d

    how can i make specular DARKER n stuff

    This would be fantastic, a major issue a lot of game artists have with 3d-coat is it's lack of colour spec maps support.
  4. Heath_3d

    Vector displacement..?

    Hi Herve_bis, So the problem here is that you're wanting something not possible in your described workflow. With current VD tech, you simply can't take two arbitrary meshes and turn one into another. As mentioned by Ghib, VD does most definitely require a subdivision workflow(such as mudbox or Zbrush). This is because VDM do not bake from a delta like a normal displacement map, but use the displacement tesselation at render time to determine the final location of the subdivided polygon. It does it this way because when you subdivide a mesh for sculpting, the Uv's are subdivided as well. So the new position of the sculpted polygon can be represented as an RGB value showing it's offset to it's original position. To have a VDM work the way you'd like, would require a lot more calculation with a lot more room for various errors. The Bake would have to take into account edge connectivity, somehow determine what parts of the source and target mesh were "meant" to be representing the same part of the object(so you'd be talking about some sort of difference threshold just for an initial pass) and then you'd have to have something in place for when crazy artists want to put a hole in the sculpt when there are none on the low poly model(one of 3dcoats main benefits is the ability to put holes when and where you'd like). If it's the sculpting tools in 3ds you prefer and that's why you're not using Mudbox, a method that might work is to subdivide your low poly mesh in the topo room over your sculpt(with snapping)a bunch of times(until you get the detail you want), export the new hires retop as an obj. Import the original model as a base layer in Mudbox, subdivide up to the same level you were in in 3dcoat and import the highpoly retop obj as a new layer.... a hassle but it might work. Hope this clarifies a few things for you. Oh, I think the VDM in 3dc is just for when working on microvertex painting. Good luck!
  5. Heath_3d

    Farsthary update channel

    Wow! Thanks for the reply! I just saw the new videos on Rauls blog(farsthary.wordpress.com/) The progress looks amazing and should really resolve some of 3dcoats current limitations as an end to end solution. Thanks again Raul and thanks Psmith for passing this on.
  6. Heath_3d

    Farsthary update channel

    Hi Farsthary, It's really exciting to see you working on these features for 3dcoat. I have a few questions regarding your work. Are these features slated for 3d Coat V4 or are they intended as part of a point update to V3? What sort of mesh res will we be looking at with these features? Will this toolset allow for micro details and sharpness on par with Zbrush? Is the surface sculpting going to be a lot like sculptris, and would it be worth while familiarising ourselves with that tool in order to hit the ground running when these features are implemented in 3d Coat? To clarify the eventual goal: We'll have the ability to work with high frequency details on a voxel object by switching it to surface mode. We will then be able to return to voxel mode and these high frequency details will remain intact over our low frequency voxel model(similar in a way to a texture on a low poly object). Is this right? Thanks for taking the time to read this, I look forward to your reply. -Heath
  7. Heath_3d

    Blender Applink

    Well, I'll be a monkeys uncle. I did a couple more tests and it appears that max/LW export works fine..... Sort of. On most of the work we've done there are many materials on individual objects. In this case I noticed all but one material use normal maps with the color orientations as I described above. The one that doesn't, uses the max standard by the looks of things. I'd say that at some point someones decided to bring blender normals into line with Max and Lightwave but there's some legacy issues/bugs. This would explain why some people have been having problems while others haven't. As a disclaimer, I only tested this on blender 2.49 and 2.54 so am not sure as to the consistency of the issue. Also, I tried splitting an object up so that it's individual faces were different UV shells, but didn't notice any problems occurring with more than 15 UV shells. BTW our workflow here has people working on different object parts and then joining them together in blender. Hope this helps in some way with dev. cheers
  8. Heath_3d

    Blender Applink

    @michalis Sorry to open your mouth michalis. In regards to doing tests, it goes without saying. My point is purely based on using these two apps together in a production environment. In regards to this blender bug you mentioned, could you point me to a thread, bug report or any other URL regarding it? It would be genuinely appreciated. In regards to the inverted channel "myth", here's a quote right out of the blender manual. Warranted it's talking about the normal maps generated by blender, but it stands to reason that blender would generate normal maps it could then use. "Blender's normal map baking tool is different from other applications, such as xNormal and Maya. Both of these are widely used in the games industry and are already production proven (meaning the way they bake their normal maps is more commonly used and can be regarded as a standard). To convert a Blender normal map to an xNormal, you need to invert the Red and Green channels." I'm not wanting to start an argument or anything, it's just that my experiences with blender normal maps matches what the manual tells me to expect. That said, I opened your file in blender 2.49b and it seemed to work off the bat, so kudos for finding a method that works for you.
  9. Heath_3d

    Blender Applink

    Hi guys, Just saw this thread and saw that people are having a few issues with blender normal maps(inverted relief or visible seams). I haven't tried the applink yet but have extensive experience with using 3dcoat and blender in conjunction with each other. The point I want to make is on the how blender treats normal maps compared to Maya and Max/LW(3dcoats natively supported export options). If you're exporting max/LW style normal maps from 3d coat(changable from the preferences) you will need to invert the red channel of those images in photoshop. If exporting maya normal maps you will need to invert both the green and red channels. I'm not sure if this applink already does this and peoples issues are unrelated. I've been doing this manually for a wide range of models for a while, and acheived perfect results every time. Hope this helps with development.
  10. Heath_3d

    Retop Normal Map Bug

    Just to clarify, I am getting a normal map on my new low poly object after baking, But it's being driven by my higher poly objects geometry rather than it's normal maps.
  11. Hi, I'm wanting to use the Retopology tools to make some lower LOD meshes from existing meshes I've created useing 3d Coat. I've textured the higher poly meshes and they have normal maps as well. I can load everything up in the paint room with no problems(including the normal maps) and make the new mesh and unwrap it in the retop room with no problems. When I "merge for per pixel painting with normal map" everything works well except the normals from my original objects normal maps get ignored! In short I can only get the color and specular information from my high poly object. Am I missing something? Any help appreciated, -Heath
  12. Heath_3d


    Ultimately I'd like to get a fully fledged terrain shader.I've been having a lot of fun using 3d coat for doing a mesa desert scene I'm working on and would like to do more, but take out a bit of the textureing work. The final custom settings I'd like are: Top col map Bottom col map side col map Top norm map Bottom norm map Side Norm map Slope (Top to Side Blend) Slider Bump Amount Slider Top Specular Amount Slider Side Specular Amount Slider Bottom Specular Amount Slider Cavity Col picker Cavity Col affects COL/SPEC check boxes Maybe this belongs in the features request thread, But as it's the ultimate goal of my current dilemma I thought I'd post it here. Any help appreciated, Heath
  13. Heath_3d


    Thanks Phil, That got that problem solved. I think the others might be tied into the "Method" section of the variables XML for the shader. When I don't alter the XML file at all, the shader bakes, but only respects the sides color and normal maps. For those in the know, here's the HLSL code with the changes (don't laugh ). // Vertex shader float4x4 g_WorldViewProjectionMatrix; float4x4 g_WorldMatrix; float3 g_ViewerPos; float4 Sphere; float OverallScale; float4x4 ShadowTM; struct VS_INPUT { float3 Pos : POSITION; float3 Normal : TEXCOORD0; }; struct VS_OUTPUT { float4 Pos : POSITION; float3 N : TEXCOORD1; float3 Ps : TEXCOORD3; #ifdef SHADOWS float3 SPos : TEXCOORD2; #endif }; VS_OUTPUT main(const VS_INPUT In) { VS_OUTPUT Out; float4 P = float4(In.Pos, 1.0); Out.Pos = mul(P, g_WorldViewProjectionMatrix); Out.N = In.Normal; Out.Ps = In.Pos*0.005/OverallScale; #ifdef SHADOWS Out.SPos = mul(P, ShadowTM); Out.SPos.xy += float2(1.0/4096.0f,1.0/4096.0); #endif return Out; } // Pixel shader struct VS_OUTPUT { float4 Pos : POSITION; float3 N : TEXCOORD1; float3 Ps : TEXCOORD3; #ifdef SHADOWS float3 SPos : TEXCOORD2; #endif }; sampler ShadowSampler; sampler CustomSampler1; sampler CustomSampler2; sampler CustomSampler3; // Change number one added a couple of custom samplers sampler CustomSampler4; sampler CustomSampler5; float4 Color; float4 CurrColor; float4 ColorMod; float4 SpecularColor; float3 LDir; float3 VDir; float LDiffuse; float LAmbient; float Opacity; float ShadowMin; float Bumpness; float Specularity; float SpecularPower; float4 main( const VS_OUTPUT v ) : COLOR { float mpl=1.0; float4 mxy=tex2D(CustomSampler1,v.Ps.xy); float4 myz=tex2D(CustomSampler1,v.Ps.yz); // Change number Two changed custom sampler for zx float4 mzx=tex2D(CustomSampler4,v.Ps.zx); float4 nxy=tex2D(CustomSampler2,v.Ps.xy); float4 nyz=tex2D(CustomSampler2,v.Ps.yz); // Finally changed custom sampler for zx float4 nzx=tex2D(CustomSampler5,v.Ps.zx); float wxy=v.N.z*v.N.z; float wyz=v.N.x*v.N.x; float wzx=v.N.y*v.N.y; float3 dN=float3(nxy.x-0.5,0.5-nxy.y,0.0)*wxy*Bumpness; dN+=float3(0.0,nyz.x-0.5,0.5-nyz.y)*wyz*Bumpness; dN+=float3(0.5-nzx.y,0.0,nzx.x-0.5)*wzx*Bumpness; wxy*=wxy; wyz*=wyz; wzx*=wzx; mxy=(mxy*wxy+myz*wyz+mzx*wzx)/(wxy+wyz+wzx); #ifdef SHADOWS float3 m=tex2D(ShadowSampler,v.SPos).xyz; float3 d=float3(1.0,1.0/255.0,1.0/255.0/255.0); mpl=clamp(2.0-(v.SPos.z-dot(m,d))*120,ShadowMin,1); #endif float L=length(v.N); float3 N=normalize(v.N-dN); float3 refl = VDir-2.0*N*dot(VDir,N); float S = dot(refl,LDir); float dd=clamp(L-1.0,0.0,1.0); S=clamp(S,0.0,1.0); #ifdef AOPASS float D = LAmbient-LDiffuse*dot(N,LDir)*mpl; #else float D = -LDiffuse*dot(N,LDir)*mpl; #endif float4 C=ColorMod*D*mxy*2+SpecularColor*pow(S,SpecularPower*mxy.w)*Specularity*mpl*mpl*mxy.w; float4 c1=tex2D(CustomSampler3,float2(dd,0)); C=lerp(C,c1,dd); C.w=Opacity; return C; }
  14. Heath_3d


    Hi Guys, I modified an existing shader to get this result, which is exactly what I'm after(essentially the tree shader with normal mapping for doing landscapes and the like). But a few things were amiss. First, I'm not getting any thumbnail showing up in the shader pallette. Second, when I try to bake out I'm just getting black on my color layer and my normal textures are being ignored. Third, My texture selection buttons don't work at all for the normal map. In short.... It's useless As I'm not a coder at all, I'm actually pretty surprised I got this far; but if anyone can see it in their heart to make their own modified shader to do this, or point me in the right direction I'd be really grateful. Here hoping, Heath
  15. Heath_3d

    Voxels > displacement map workflow ?

    The best approach I've found for doing displacement maps for preexisting models is as follows: The Texture bake tool has the option to import an external mesh as a target model, but it doesn't appear to work properly. Large displacements result in "black holes" in the displacement map regardless of scan depth(bug?). However, you can import your external mesh into the retop room, don't snap the mesh to the voxel sculpt, and export for pixel painting to the texture paint room. This will bake a normal map to the model which you can save for long distance shots, but now when you use the texture bake tool with the option to use the current low poly mesh, you should get a good displacement map. A couple of things to keep in mind are that the scan depth is in pen units so have a glance at the radius of your pen to gauge how far you need to scan. Also make sure you choose the option to maintain vertex positions while smoothing, as that is how the model will look in your external package. If this doesn't work, be sure to check that the problem is on the 3d coat side of things, as different renderers have different zero levels and a host of options for optimizing displacement rendering. Hope this helps, -Heath