• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by petersvp · Apr 22, 2015 at 04:16 PM · renderingshadersvoxelsplatmaps

Dynamic Multi-pass texture splatting with shadows?

Hi, guys, I have a problem that I don't know how to address with Unity, but I already prototyped in Ogre3D / C++.

I am making a voxel based game with Marching Cubes based terrain. World is divided into chunks, and each chunk can have unrestricted amount of different materials. Users can manipulate the world runtime, so limiting textures count is not an option.

In Ogre3D, we can generate multipass materials on the fly. Each material have different number of passes and each pass have vertex and fragment shader. Implementing my splatting was then straightforward.

First pass is: Render the geometry and first 4 texture splats while writing to the Z buffer. Then I have N amount of additive passes that each pass renders next 4 texture splats (No Z-buffer writes and Z=equal check). If I have 13 materials in a chunk, I end up with 4 passes (3*4 = 12 + 1 pass for 13th material = 4 passes). After this pass chain completes, additional pass renders light contribution.

The problem is that unity's Material architecture differs a lot than Ogre's raw material->passes->shaders.

How can I implement such manual render passing in Unity? I don't want to have different ShaderLab scripts for each possible splatting pass count is just unacceptable.

How can I do multi-pass rendering pass-by-pass, with only using a shader per pass, and by shader, i mean a real shader, Vertex and fragment, not an ShaderLab script (Unity documentation misuses term "shaders" A LOT). I see, I cannot generate shaders runtime, it looks like I cannot generate multipass materials at runtime by only using pre-made vertex and fragment shaders, or I overlooked?

And as final step, I want to render lighting contribution only, using a surface shader :)

Also, let me add: I've already stumbled upon builtin_shaders->Terrain->Splats. The question is not about shader passes, but how to properly render passes manually, and how to control the render order plus how to add the lighting on top of that.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

2 People are following this question.

avatar image avatar image

Related Questions

Stencil buffer and transparency 0 Answers

U5 shader coming out solid black on newer iOS devices (iPad 2 Air / iPhone 6) 1 Answer

Prevent material from rendering behind itself 0 Answers

Problems with Depth Normals and variable CullMode 0 Answers

Shader errors in Windows build ( renders black ) but not in Editor 2 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges