Unity3d 如何使用RGB纹理为Google Tango(Nash)点云着色?
我正在尝试使用as base编写着色器,以便使用不同于默认蓝色/粉色的颜色渲染点云。这是我第一次使用3D数据和着色器,因此我对事物如何工作的理解可能不太清楚。我注意到我使用的点云的密度与我正在使用的1280x720图像大不相同,所以可能每次着色器执行texel查找时,它都会出现黑色?而不是附加到材质(材质上有着色器)的RGB图像的预期颜色混合。以下是我的着色器代码: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
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模型(第二部电影)之前,选择着色器没有多大意义-我不能强调第一部电影是一个“非常糟糕的主意”