Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • 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.

Follow this Question

Answers Answers and Comments

2 People are following this question.

avatar image avatar image

Related Questions

Render the scene only using a given a renderType tag 2 Answers

UI Blur shader not working 0 Answers

How do I use both a color's alpha and the texture's alpha in a shader pass? 0 Answers

What exactly is a pixel light in Unity ? 0 Answers

How do I fix these clouds? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges