Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

[RELEASED] VRWaterShader : Simple, VR compatible, Easy and good looking water.

Discussion in 'Assets and Asset Store' started by synqark, Jan 30, 2018.

  1. synqark

    synqark

    Joined:
    Jun 5, 2017
    Posts:
    4
    --------------------------------
    1.1 : Addtional Shader Varieties :
    • ZWrite : avoid Z bug each mesh faces
    • GLES30 : Compatible for OpenGL ES3.0
      (tessellation feature was replaced by vertex offset feature. Sorry! )
    1.0 : Initial Release!
    --------------------------------

    VRWaterShader is simple shader, that focused to output water and liquid-like surfaces.

    Include following features:
    - PBR(BaseColor+Tex, Metallic, Gross)
    - Only one shader to run.
    - SinglePass Stereo Rendering support. (That is why I'm saying 'VR')
    - Two Height&Normal map as Waterwave
    - Supports Tessellation.
    - Screen Space Refraction Support (and configurable strength each distance from camera)
    - Additional Cubemap for ambient light.


    (no underwater effects. sorry!!)



    [Reserved for another Youtube Preview ><]

    [Reserved for Screenshots. ><]

    Contact: virtually.synqarks@gmail.com
    https://twitter.com/synqark

    Thank you for reading. :)
     
    Last edited: Feb 21, 2018
  2. psychicvrlab

    psychicvrlab

    Joined:
    Oct 29, 2014
    Posts:
    14
    Hi,
    I purchased the water asset. It's really good.

    It works well with Windows app and VR. I tried to use it with WebGL environment, but it doesn't work with WebGL. Would it be possible to make it available for WebGL?
     
  3. psychicvrlab

    psychicvrlab

    Joined:
    Oct 29, 2014
    Posts:
    14
    I guess "Target renderes" on Shader Forge matters, but I don't know how to fix it.
     

    Attached Files:

    • sf.png
      sf.png
      File size:
      275.4 KB
      Views:
      308
  4. synqark

    synqark

    Joined:
    Jun 5, 2017
    Posts:
    4
    Thank you for be interested in my assets.
    I'll try to run in WebGL environments correctly. but It may take a few days.
    ( bcz I don't have enough knowledge about WebGL and OpenGL.):(
     
  5. synqark

    synqark

    Joined:
    Jun 5, 2017
    Posts:
    4
    I found it. but tessellation feature need to be omitted

    upload_2018-2-14_23-6-33.png

    Please Cut Tessellation nodes. and Connect Vertex Offset instead of Displacement.
    upload_2018-2-14_23-8-57.png

    Then we're able to set target renderers including OpenGL ES 3.0
    upload_2018-2-14_23-10-19.png

    Thank you for you information!
    I'll add this shader (VRWaterShader/GLES ?) next update.
     
    psychicvrlab likes this.
  6. synqark

    synqark

    Joined:
    Jun 5, 2017
    Posts:
    4
    version 1.1 is out!
     
  7. GreggBzz

    GreggBzz

    Joined:
    Nov 29, 2016
    Posts:
    2
    Hi There,

    I'm using Unity 2017.4. I purchased this shader, and it does work as advertised, but only on prefab meshes like a plane.

    Any procedural mesh I apply the materials to renders black. Here is code I made for a simple procedural quad:

    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4.  
    5. public class SimpleMesh : MonoBehaviour {
    6.     private Vector3[] vertices = new Vector3[4];
    7.     private Vector2[] uv = new Vector2[4];
    8.     private Vector3[] normals = new Vector3[4];
    9.     private int[] triangles = new int[6];
    10.     private GameObject aSimpleMesh;
    11.  
    12.     // Use this for initialization
    13.     void Start () {
    14.         vertices[0].x = 0; vertices[0].y = 5; vertices[0].z = 0;
    15.         vertices[1].x = 0; vertices[1].y = 5; vertices[1].z = 1;
    16.         vertices[2].x = 1; vertices[2].y = 5; vertices[2].z = 1;
    17.         vertices[3].x = 1; vertices[3].y = 5; vertices[3].z = 0;
    18.  
    19.         triangles[0] = 0; triangles[1] = 1; triangles[2] = 2;
    20.         triangles[3] = 0; triangles[4] = 2; triangles[5] = 3;
    21.  
    22.         uv[0].x = 0; uv[0].y = 0;
    23.         uv[1].x = 0; uv[1].y = 1;
    24.         uv[2].x = 1; uv[2].y = 1;
    25.         uv[3].x = 1; uv[3].y = 0;
    26.  
    27.         aSimpleMesh = new GameObject("aSimpleMesh");
    28.         aSimpleMesh.AddComponent<MeshFilter>();
    29.         aSimpleMesh.AddComponent<MeshRenderer>();
    30.         aSimpleMesh.GetComponent<MeshFilter>().mesh.vertices = vertices;
    31.         aSimpleMesh.GetComponent<MeshFilter>().mesh.triangles = triangles;
    32.         normals = aSimpleMesh.GetComponent<MeshFilter>().mesh.normals;
    33.         for (int i = 0; i <= normals.Length - 1; i++) {
    34.             normals[i] = new Vector3(0, 1, 0);
    35.         }
    36.         aSimpleMesh.GetComponent<MeshFilter>().mesh.normals = normals;
    37.         aSimpleMesh.GetComponent<MeshFilter>().mesh.uv = uv;
    38.         aSimpleMesh.GetComponent<MeshFilter>().mesh.RecalculateBounds();
    39.     }
    40.  
    41.     public Vector3[] GetNormals() {
    42.         return normals;
    43.     }
    44.  
    45.     public Vector3[] GetVerts() {
    46.         return vertices;
    47.     }
    48.     public int[] GetTris() {
    49.         return triangles;
    50.     }
    51.     public Vector2[] GetUv() {
    52.         return uv;
    53.     }
    54. }
    55.  
    When applying the Day material to my simple quad, it renders black. The mesh looks identical in the inspector to any simple prefab mesh created in unity, like a plane or a spheres etc.

    Here's a screen shot from above. You can see my small quad mesh renders black. But below, a prefab plane mesh renders the material fine.

    upload_2018-4-20_21-58-6.png


    I don't understand why this is happening, and it's quite a shame since my project is almost entirely procedural.

    synqark, Maybe you can help me out! Thanks!
     
  8. GreggBzz

    GreggBzz

    Joined:
    Nov 29, 2016
    Posts:
    2
  9. ItzMorphineTime

    ItzMorphineTime

    Joined:
    Jun 24, 2017
    Posts:
    1
    Please can you help me fix this issue:


    Code (CSharp):
    1. Shader error in 'VRWaterShader/Standard': syntax error: unexpected token ';' at line 563 (on d3d11)
    2.  
    3. Compiling Vertex program with UNITY_PASS_FORWARDADD SPOT LIGHTMAP_OFF DIRLIGHTMAP_OFF DYNAMICLIGHTMAP_OFF
    4. Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_FULL_HDR
    5.  
     
  10. bzor

    bzor

    Joined:
    May 28, 2013
    Posts:
    30
    are there plans to make this work in 2018? thanks!