Mesh Leo雷达图!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.Linq;

public class LeoMap : MaskableGraphic
{
public float[] arr = { 1, 1, 1, 1,1 };
public Texture texture;
public override Texture mainTexture
{
get
{
if (texture == null)
{
if (material != null && material.mainTexture != null)
{
return material.mainTexture;
}
return s_WhiteTexture;
}
return texture;
}
}

protected override void OnPopulateMesh(VertexHelper vh)
{
vh.Clear();
if (arr.Length >= 3)
{
//找圆心
vh.AddVert(Vector3.zero, Color.white, new Vector2(0.5f, 0.5f));
//获取弧度
float ang = 2 * Mathf.PI / arr.Length;
//获取图片的短边
Rect rect = rectTransform.rect;
//再获取合适的半径
float r = rect.width < rect.height ? rect.width / 2 : rect.height / 2;
//比例
float p = r / arr.Max();
for (int i = 0; i < arr.Length; i++)
{
float x = Mathf.Sin(ang * i) * (arr[i] < r ? arr[i] : r) * p;
float y = Mathf.Cos(ang * i) * (arr[i] < r ? arr[i] : r) * p;
float uvx = (r + x) / (2 * r);
float uvy = (r + y) / (2 * r);
vh.AddVert(new Vector3(x, y, 0), color, new Vector2(uvx, uvy));

if (i == 0)
{
vh.AddTriangle(0, arr.Length, 1);

}
else
{
vh.AddTriangle(0, i, i + 1);
}
}
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mesh 人脸贴图指的是将图像上的纹理映射到一个三维网格模型上,以创建一个具有真实感的人脸模型。在计算机图形学和游戏开发中,这种技术被广泛应用,用于制作逼真的虚拟人物。 首先,为了进行人脸贴图,需要获取人脸的三维网格模型。这可以通过使用三维扫描、结构光或摄像机捕捉等技术来实现。一旦有了人脸的网格模型,就可以进行下一步的贴图过程。 在贴图过程中,首先需要将图像与网格模型进行对齐,以确保贴图的准确性。这可以通过将图像投影到网格上,并利用一些算法进行自动对齐来实现。接下来,将图像的纹理信息映射到网格的表面上。这可以通过一种称为UV映射的技术来实现。UV映射将网格表面划分为一系列的二维坐标,然后将图像上的像素映射到这些坐标上。最后,应用一些纹理过滤和光照模拟等技术,使贴图的效果更加逼真。 通过使用Mesh人脸贴图技术,可以实现高度逼真的人脸模型,可以用于电影特效、游戏开发以及虚拟现实等领域。这种技术的应用不仅可以增强图像的真实感,还可以为用户带来更加沉浸式的体验。但是,需要注意的是,Mesh人脸贴图还面临一些挑战,例如对于光照、阴影和细节的准确捕捉等方面的处理,需要继续研究和改进。总之,Mesh人脸贴图技术在计算机图形学领域拥有广阔的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值