![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uIIkm-GK_jl-Ydi0qVV80TD8BVK87D7vp9EK32yg8ihqin7ffS3_cNtsJf-oGRi8dvhYoQgWq8x__77TA3ns2JXFab1EbLScPMaGTU8bD6Su2BkL1NMTnjL5YsxrfdD7K6ELgS2y-7uqEcOC1IS2_um_DE=s0-d) | # File: v3d_cGatherMegaAovDynamo.slim
#
# Description: Render separate surface attibute (aov, shading component) each in separate relative AOV.
# All perform in 1 (ONE) shader tracing call, get banch of it FAST.
# Access to full render pass control in post! Automaticly create new AOV, like if we need "DiffuseDirect", we get "_reflect_DirectDiffuse" pass.
# What if we have incandescence in primary pass AND reflection - on post we turn off incandescence, but it stay in reflection.... with this template you get full control.
# All pass in list generated, first use as output of template (first visualized).
# Can be used with reflection and refraction! (even get multiple ray depth, self reflect/refract)
# Very powerful feature.
#
# Usage example:
# (dont forget raytraycing on)
# Create delux shader. Add Rim and Incandescence (and connect texture to color value). Attach it to sphere.
# Create constant shader, connect this template to color and attach to ground plane below sphere.
# In "What to do" field add 'Rim' first.
# Now by default we trace 3 variables - Rim Incandescence DiffuseDirect. For each of this automaticly created new AOV's.
# By "aovPrefix" field on output can be catched new AOV: _reflect_Rim, _reflect_Incandescence, _reflect_DiffuseDirect.
# (if use refraction vector, "aovPrefix" can change to _refract_ or anything what you want)
# Add this names (color _reflect_Rim) to "channel" and "secondary display" in Renderman Globals.... All done.
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sKp-1Sb6yFj6wTZdeVa7Q-2oAYttkTzOoEsO7HMgJuRBQgCAXUETUK7ipblzGomj8NuubrT0G5GV9HhmvwUVjRYWtp8i39ypspOHsxpTDk6tlVynVRRkfwC0gmFTMIL3dGZrRNS-VevqjkmOjGVkXf=s0-d) | # File: v3d_cCatchLightOutput.slim
#
# Description: Catch AOV variable casting by light. Like render diffuse and get shadow pass, L direction pass,
# or any you like to send (it even can be pattern or texture map)
#
# Usage: Attach AOV to light (in my shader in separete slot), or colorAOV and light send it.
# Or produced output in standart lights shader is:
# color: _shadow, _cl_noshadow
# floats: __nondiffuse, __nonspecular,
# _contribRim, _contribThinTranslucence,
# _contribBackScattering, _contribSubsurfaceScattering
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vPLjs-ocdl8yGKXA-3UrExpemTTRobyR1no5tOapvB_AsKNZNB1qb3RptFWZuE5FXEQVfFCl2JOx1-ry9AR-sp0Ew0CT0MqcXNpvj6WBeE-UD8VevoAKoB72ZbtnYAhHUA6577aF6w1E1hycswSsHWkI1g=s0-d) | # File: v3d_cCatchLightOutputAOV.slim
#
# Description: Same as v3d_catchLightOutput.slim, but in DynamicFunction can resend AOV without extra nodes.
# Catch AOV variable casting by light. Like render diffuse and get shadow pass, L direction pass,
# or any you like to send (it even can be pattern or texture map)
#
# Usage: Attach AOV to light (in my shader in separete slot), or colorAOV and light send it.
# Or produced output in standart lights shader is:
# color: _shadow, _cl_noshadow
# floats: __nondiffuse, __nonspecular,
# _contribRim, _contribThinTranslucence,
# _contribBackScattering, _contribSubsurfaceScattering
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sK0hOa4WCpgrCkfJuDElbEO5eq2UzUghdgtalHLXiuFmeqTJNOzgGnnUJGSa2zu_qkmHDFKhiWqhT7KCgoxlRk0Nza6mDTiJ_UdcYRdvrdB2d1Vu_Ms83crUPqHFHjFe9XDPSfAqR2OHy_wA=s0-d) | # File: v3d_envLatlLens.slim
#
# Description: Render environment latitude/longitude map from camera. Render in float and get HDRI environment texture.
#
# Usage: Create plane geometry in front of camera, attach constant shader to plane (you can parent plane to camera and off visible in reflection etc. parametr on shape)
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vdDi19Z00bA5LHbea1fSsVIhJtO8M_4VIqiuFRP4EgN0vX7TK0x06AyeagJWl3d3PtmIFqceOQENNRgvQnGAva611VfN7kpnqTEGQlMWacOL7IByo2NmtTDJdYtrBVHRy55504asjC2e7WiNYI=s0-d) |
# File: v3d_cNormalTangent.slim
#
# Description: Convert tangent space normal map to camera space normal.
#
# Usage: (convert to normal) and attach to custom slot in displacement, or input normal in diffuse function etc.
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sRbrvoFdXVlVXnp9Cio9_-NYfWIOy3WNum8EcgqgokvXqu9Jbm2kNExCX-BPYo-08MnFtHgTpu566Y5kAJ-xnEqpdeKQdPLTjdua4UyhHtpW_3EIXz7NzbqnY_VDTQy07R4r9UwGw-b4yOqvq42MSSswzk=s0-d) |
# File: v3d_cShadowSoftOcclusion.slim
#
# Description: Ultra-fast soft shadow rendering (with highest quality!) by using occlusion. Original idea from Dmitry Novikov.
#
# Usage: Connect to light shader "shadow" slot (or custom output slot from my shader and catch from surface).
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tMue8bhgXjSG58H_klsZuE9psuCvsiD5JoksafEX7IAx88O8oiY_nOV8GrH5O51afv5VqrXxsXkd_B0xJ26LmPqJ_aTflRW3Uw7hz0q9GLv6Ezibhz5ITJqK6vGVHUfOjZQz7tFH93=s0-d) | # File: v3d_cPostEnv.slim
#
# Description: Generate coordinates to use in IBL or add reflection in 2D.
# Mode = 0 - for reflection
# Mode = 1 - for image base lighting
#
# Note: Image base lighting in this case may not very accurate,
# because in 2d looking 1 sample from coordinate image.
# For example, coord. can render in double resolution with low sample, and resize it down after add reflection ("antialiasing" in post, course image file size much bigger).
#
# Usage: attach to AOV and render it, combine in 2D package with appropriate script/macros.
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tN396kiy7dX4jcs3PR_LApA3ZLj6s8ynwy209evBcJbp99AvxeujS4aXOf41hdtDlZ4SYm5WqX0lKr2utBDxsLcHmzrnZNZ_fu0URA14kONPm7UmU4df6d5DGr6dE3nEkK2Yc3yW4Ht1QQBsVw0xpat1kPmA=s0-d) |
# File: v3d_fMultiMapZbrushManual.slim
#
# Description: For ultra high detail displacement map, like 10 maps in 4096*4096 pixel resolution (total 40960*40960, without one huge image),
# when using Zbrush and MultiDisplacement (model separated to groups with > 0-1 UV space)
# UV groups must be in U direction (for simple managing). If you need more 10 set, create second copy and set offsetU value to start position.
#
# Usage: Map 1 = UV 0-1 (U), Map 2 = UV 1-2 (U), etc. |
|
|
# File: v3d_fMultiMapZbrushAuto.slim
#
# Description: For ultra high detail texture map, like 10 maps 4096*4096 pixel resolution, in total 40960*40960, without one huge image,
# when using Zbrush and MultiDisplacement plugin to export texture (model separated to groups with > 0-1 UV space)
# UV groups must be in U direction (for simple managing). Can set offsetU value to start U position if uv starts not from 0-1.
# Updated dynamic version - select one map and other regions maps be connected automaticly. No tedious selection of 101 texture map by hand.
#
# Note: if you using Zbrush (current MultiDisplacement3 export plugin), you can view very small seam between region changes.
# To remove it a little bit scale down uv shell border in Maya. File number index must start from not zero (not name.0000.tif)
# In Zbrush set '.' after texture name (name. ) and all other naming convention must right.
#
# *.bat file example to batch convert files to tex
# for %%t in (*.tif) do "%rmantree%/bin/txmake" -float "%%t" "%%t.tex"
#
# Usage: select 1 texture map and all other be automaticly connected. (used mask - fileName.#.extension)
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_svdMDVx5KYU0agwg-LxWgisZo8YQzcJPFyeeF3wRDyq5rODv7YxwbvFjpRwsC6tGZXiM4tfarufjMSu5LPAbBPXDZkZZfG4DWkMzA0IgYBmNciYh-jClc_95Fl_LRZecj6t_pO9zPL3LRJRMXEmR1nvEg=s0-d) |
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ukQn_G4w4NKCLl0vnsuVAPY63nXx63oUhsWMrZr62tMQkROAdmf9LtZcDsP1raAP9bX4Cobto92hjASjixuXUmXGXjMQg939sEGV1grcQrfig6G8gpNa6NNTqwHhS0TnZElTHiwIkZpmn90kI=s0-d) | # File: v3d_nBumpedNormal.slim
#
# Description: bump normal, can create cool effect like underlaying layer lacquer surface (polished wood etc.)
#
# Usage: Primary use with delux component to achive one bump map on diffuse and different bump map on specular etc.
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tegJqmUuipiFGANmYJWEu-ZB4NcfGJS8D6c1P1Bllvi-ETgSQ83kMbC97_NXbMUuMW_i5pP5_eXhBl9pG7TXY4YIuMRvwFfkN9uUilG_r-HFpvRRb8yHWojwHzYSVRMRBSR_RxMHKjEfHAz0qd=s0-d) | # File: v3d_lCategoryLights.slim
#
# Description: Set of standart lights improved with category and custom output variable (can attach AOV)
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uoyWAzxIzQgSbj0PWovlJbW19_OdEPRlYEZ56epiNWJgDVUXkVZARJf5l1gRiTBH40hLsCvbo6MlHjBoSajltCcyJos9PRNbvt9ZU3G05huKyLUNy1ZoyAi0QBszZmVhF-d7WrBw=s0-d) | # File: v3d_scNull.slim
#
# Description: null shading component, to easy attach custom AOVs to delux shader.
#
# Usage: attach to delux, and attach AOVs to inputs
#
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tEIE11GgTbkaTWSLHb_a8dRl3IeBOT3AbGT7RkXjmnONNF_ndkrj9CTLvXSXkc2GSDLBeB3MlBxohMH_Qs7h3gsPgyIQGSDDDvPEPy54mCslrFU5GcGQ4Z0jJSE3gpE1sJ8h154z0=s0-d) | # File: v3d_xRibBox.slim
#
# Description: Set of RibBox notes, to fast create some usefull tricks.
#
# Usage: Create and see descriptions. |
|
|
| |
# File: v3d_xMegaAOV.slim
#
# Description: Connect multiple AOV to surface in one time. Can view separate AOV.
#
# Usage: Connect and give name to AOV channel. This map not need used in primary shading, is need only be attached to surface and calculate in "backgroung".
# For example attach to AddFx surface. |
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uwjsmQXl1081BREV6suekuUFJEkAkgOfXPMW58CYN74Dgs_FH4Srkqmstd6t9IBv5-O2uwC-g-diXzy1koB0OAovuUf38TnXnOLHgbO0TBoBfB6fLFVdYRVu9qwBFxsLyBBctz0rQa=s0-d) |
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uPqr0MNrzMKjsNw08EIIgubj-FuavEz8jeWVdcNACxbKVoJb8VmYn40ztgrqLB_vwsNof5aFc_IIlgQ-bBWnuKb1EjakqZ3tKSEgeqQ5Sd9kiDGkr-Ds2fVYF3s6jqmVLF1K3z4fy3WE6AJWcr72w=s0-d) |
# File: v3d_fMultiBlendShape.slim
#
# Description: Add different Dispacement map value depend on blend shapes, like wrinkle on face when smile, different map when angry etc...
#
# Usage: use mel script - v3d_multiBlendShapePrimvar.mel, on proc call change name of blendshape node and target surface name
# (multiBlendShapePrimvar pCubeShape1 blendShape1;) This create primvar on shape node (also print names in output)
# copy this names line by line to "Attribute name" field and connect associated texture.
#
# To do: may create full automatic, get file names - file.'blendshapename *'.tex - and auto generate all texture() call * read primvar
# but it cause not able select custom multiregion texture etc. depend on production think about name convention.
|
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uLfSUpJySihtQNDY1mRUqFmNU_84mnvFLnRjZr74aGUsyGQlOejPtSam_apx6EHX6XSK0RBaj55QRs1mKeVI59Tcs6X-I-A2A0eYT-EeMn9r4wkcJaiOkrr8TlJFUfInbOS3VT=s0-d) | # File: v3d_accumColor.slim
#
# Description: simple accumulation effect, like "Color Accum" on particle shape effect.
#
# Usage: Attach to particles (or surface)
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vFk2iaHAkhQvY6EQIaE0E5Ocw3asemZL5ZFQVyztow89blJY6cuF3Dr-wLCk93I7k1-1MIgtJmCkifpIjchU34qbNDz2v7-7OmrfZNET0ivm8XOL-vrfOidfn6hxXrxMP-Cf09fLJ8=s0-d) | # File: v3d_cBrushed.slim
#
# Description: modifyed ward anisotropic specular template
#
# Usage: connect vector to input
|
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tOsFS5YtfT3aG0vh1t9JakXIYreHb9V30qSo3PcPqmWFcUWy3u_G-bNcXmgV2FGHpTNWQTkAz0IaFJot0aKvi0JSIlL7_Rk9PpclypexMs42djJonjsrJGy1jHCcsyd0gxCSN4wo7h3g=s0-d) | # File: v3d_cFloatRGB.slim
#
# Description: Simple surface shader to combine 3 float to color,
# use for collect and view individual float channel to AOV output
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vB1l1gqvqbrWGIgjzR-dY1NBeCsEpKrqhQ_zw4eFJ1pUrXSw0OUJrI_ZWEOe4GJHdLLoVXFmJNXIft9f13pB08LfNaMSgKo3vMj4s6-ppH45zGhQgtQgxqBzMoW9PjF1RqyuW5rIp4gCC0=s0-d) |
# File: v3d_cSmoothstep.slim
#
# Description: Smoothstep to color, create smooth step float function to color
#
# Usage: input image or pattern and set minimum and maximum value.
#
# Example: input = color noise (frequency = 20); mini = 0.6; maxi =.7;
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tIBpoq-xFvQlziZekMv2euruTBe3glwCZVqlAyEa28a9gO2LZ5Lp3mgJ7mpbupXXr8od0xcAbtETyI2bQ2tULd57K9WEKjofABn9eNjqpObG1GBGDuU0X6jSw270zrkbZGdhGUN2OJQCFT7N4=s0-d) |
# File: v3d_cUVregionView.slim
#
# Description: For zbrush multitexture show uv regions more than 1 (0--1, 1--2,n -- n+1) in different color.
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_u2OS8GkwA7AmM99_l-jawAkGaqe23zO88DpLSHxDKHlEPJK1_5NWoxA8AFp-5C3945gF-gNKAXPS6nM5dStJ09iIneC-jAMqiKxL89IVTRTKM93U0PqGeLYg4CXVg_dO4casl-HXCsdMtpyAr9=s0-d) |
# File: v3d_cWireFrameSubd.slim
#
# Description: Render wireframe on polygon subdiv surface. Better on quad.
# Actually show topology after smoothing. Same result as polygon>smooth (view at triangles)
|
|
|
|
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tDOYAiWpZD6yl1VfEAu2CHf1DuskvYjYvvzWrP15nz9c2Vb5QaLnbb57_1PJ9tBIIUw4vPssLawetoF5Sr_RN7SBnB_GKClPRaVl4XPOkYmPteyxV0RIKuwLWbz93srMWQcC-XrsM=s0-d) | # File: v3d_fStairs.slim
# Description: Create steps effect on float pattern or image
#
# Usage: input float pattern and get result. Interesting effects if using in in displacement.
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vbJAUDYxMxKj6fgCX_xT0lrdyOwY_hfAvmG3WGPWEn1e3ilRRZTtXxjfBbPDsy6mHES6zeyBSIZK3EQY56D7mcycq8K_qyu1lhRSrRXrx1qWfPcGtzFAoW3i0bb71y5VyFiSj7=s0-d) |
# File: v3d_fWave.slim
#
# Description: simple example animated sin() wave shader with internal parametr time |
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_s2DVQccGUO5Eqwe6J2uA4DySdpTLaY9vysPnCUGYCLjjeFSc_WYrHz7JDLUwyj324D4GmxkboaDqf-49e-HMr8BBX-a3S2FyDGzoOzKHrnSKWIO1o0BZBnQFC2YZHd_T9aqyIewuG-7lT2xgUh5Q=s0-d) | # File: v3d_lEnvironmentMix.slim
#
# Description: Simply mix 2 environment light.
# Interesting looking effect with 1st map is strong blured, 2nd crisp, and use sharp mix mask. |
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t39tmfwPD3pk6iEifCYN0BWjgy66prytXCJhPJIfN7TPor7f7zlNauhak_11TZRivn4V_9dPj59jab7pJmZwagTKTZscrXHEa12p7OWfUFODrLxuxuKqpspvrQ5ehwebeZGmqzrSqKTwU=s0-d) | # File: v3d_sAddFxPlus.slim
#
# Description: AddFx shader + additional slots to connect AOV channels
#
# Usage: attach color ao float AOV to empty slots.
|
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t1nCQh6D1l1pcOvtdW4xENSyEvYSCZ0SEdmNISP8ttWPI1fimL9G0IQEOYJ2_epeAtzUiy0Bsi4SroVnqPEj_UJ4yhXSDJL3p4GnDhAL5mtr-ButSWz3mTAewz2nLOKH5Mi5XqDg=s0-d) | # File: v3d_uvTrunc.slim
#
# Description: Truncate ST coordinates.
# Create pixel blocky effect (like big screen created from small lamps etc.)
#
# Usage: attach to any pattern or texture in coordianate slot |
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vRqidBzu-p_QOt3GZd3ZXjMBXqCZEdivq1ekXrT9L3VzVPKpDq-TPJhoohkkV_hHrOEbD0bm2KdHlaxiunuNzkaR_RGRr1XzJJNQTB6BUfO-NLaSehnN8JxkRT_p_vYoBDZkeeg3jyW0zIXw=s0-d) | # File: v3d_uvTruncWorld.slim
#
# Description: Truncate ST coordinates in world space or another connected coord system.
#
# Usage: attach to any pattern or texture in coordianate slot |
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ujWEymryc1g_s-eXttxGIvQ3skbvt1rxpb6ee0GUafqaP-sTzTQumLgT6jiiCwd4w9_v9LKKuSSvSS8ETFK05Fsbc-6PpEB3xYfxb9x8QDOyd1gXlmUgEAnnoQ4ePvPlwyFvv7sH7-kIg=s0-d) | # File: v3d_xConversion.slim
#
# Description: Some convertion function to can connect different date type in slim
#
# Usage: Simply connect input.
|
|
|
|
|
|
|
|
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tOdTlW_V866stgyJJEnnuoKz9K3mSVOMak3ynoSPTbLXoJuYA-hSI9sBqkLFZCfJUiMjN3K5Ug-AEbQ89l3QCxDAPWqgokYWiI4Tu8FJ8VSp4=s0-d) | v3d_chroma.sl (WIP) (source not available) |
Chromatic aberration refraction shader. (fast)
As camera lens:
Lustre:
|
|
|