Unity3d 如何使用RGB纹理为Google Tango(Nash)点云着色?

Unity3d 如何使用RGB纹理为Google Tango(Nash)点云着色?,unity3d,shader,google-project-tango,Unity3d,Shader,Google Project Tango,我正在尝试使用as base编写着色器,以便使用不同于默认蓝色/粉色的颜色渲染点云。这是我第一次使用3D数据和着色器,因此我对事物如何工作的理解可能不太清楚。我注意到我使用的点云的密度与我正在使用的1280x720图像大不相同,所以可能每次着色器执行texel查找时,它都会出现黑色?而不是附加到材质(材质上有着色器)的RGB图像的预期颜色混合。以下是我的着色器代码: Shader "Tango/TextureTest" { Properties { _MainTex

我正在尝试使用as base编写着色器,以便使用不同于默认蓝色/粉色的颜色渲染点云。这是我第一次使用3D数据和着色器,因此我对事物如何工作的理解可能不太清楚。我注意到我使用的点云的密度与我正在使用的1280x720图像大不相同,所以可能每次着色器执行texel查找时,它都会出现黑色?而不是附加到材质(材质上有着色器)的RGB图像的预期颜色混合。以下是我的着色器代码:

    Shader "Tango/TextureTest" {
    Properties {
      _MainTex ("RGBA Texture Image", 2D) = "white" {} 
   }
   SubShader {
      Tags {"Queue" = "Geometry"}

      Pass {    

         CGPROGRAM

         #pragma vertex vert  
         #pragma fragment frag 

         uniform sampler2D _MainTex;    

         struct vertexInput {
            float4 vertex : POSITION;
            float4 texcoord : TEXCOORD0;
         };
         struct vertexOutput {
            float4 pos : SV_POSITION;
            float4 tex : TEXCOORD0;
         };

         vertexOutput vert(vertexInput input) 
         {
            vertexOutput output;

            output.tex = input.texcoord;
            output.pos = mul(UNITY_MATRIX_MVP, input.vertex);
            return output;
         }

         float4 frag(vertexOutput input) : COLOR
         {
            float4 textureColor = tex2D(_MainTex, input.tex);  
            return textureColor;
         }

         ENDCG
      }
   }
    FallBack "Diffuse"
}
在Unity编辑器中,我创建了一个新材质,并向其中添加了一个随机RGB图像。为了使用这个新的材质+着色器,我用我的替换了PointCloudUnity示例中使用的Pointcloud材质+着色器。因此,我有两个问题:我的着色器是否不完整/不正确?在理解着色器中使用纹理的概念时,我遗漏了什么,特别是与此Tango pointcloud场景相关的内容

谢谢


我的探戈装置正在运行纳什

是的-除非你在固定视图中积累3d点击并希望它们最终实现全覆盖,否则你不会成功-考虑到野兽的本性,这是不可能的

你有两个解决方案- 第一种方法是使用Delauney三角剖分或任何其他将点缝合到曲面中的技术生成网格。然后,您可以让图形引擎计算出两者之间的所有点-为您知道的点生成纹理坐标,对您不知道的texel坐标进行插值--

现在,我必须第一个承认,在追逐那只鹬两个月后,这是一个错误的方向,因为所有错误的原因——tl;dr是Tango数据返回是一个统计过程,即,您必须继续假设,尽管Tango数据返回在一定程度上随时间推移而精确,但Tango返回的单个点既不精确,也不可复制,因此体积可视化技术是一条路要走,纹理应用程序中有各种各样的booboo,但实际上它使用的是多轴融合模型,而前者仅在采集时视图与摄影机轨迹和姿态直接对齐时才运行

至于着色器的实际创建,这是一个不同的响应-但我认为在您知道如何将点云编织到曲面(第一部电影)或3D模型(第二部电影)之前,选择着色器没有多大意义-我不能强调第一部电影是一个“非常糟糕的主意”