当前位置: 首页 > news >正文

Unity VR黑屏

picosdk里面的,有修改

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ScreenFade : MonoBehaviour
{[Tooltip("颜色")]public Color fadeColor = new Color(0.0f, 0.0f, 0.0f, 1.0f);private int renderQueue = 4000;private MeshRenderer gradientMeshRenderer;private MeshFilter gradientMeshFilter;private Material gradientMaterial = null;private bool isGradient = false;private float currentAlpha;private float nowFadeAlpha;private List<Vector3> verts;private List<int> indices;private int N = 5;void Awake(){CreateFadeMesh();SetNowFadeAlpha(0f);}void OnDestroy(){DestoryGradientMesh();}private void CreateFadeMesh(){verts = new List<Vector3>();indices = new List<int>();gradientMaterial = new Material(Shader.Find("HappyMaster/ScreenFade"));gradientMeshFilter = gameObject.AddComponent<MeshFilter>();gradientMeshRenderer = gameObject.AddComponent<MeshRenderer>();CreateModel();}public void SetNowFadeAlpha(float alpha){nowFadeAlpha = alpha;SetAlpha();}/// <summary>/// 渐显/// </summary>public void FadeIn(float gradientTime = 5f){StartCoroutine(ScreenFadeIn(gradientTime));}/// <summary>/// 渐隐/// </summary>public void FadeOut(float gradientTime = 5f){StartCoroutine(ScreenFadeOut(gradientTime));}IEnumerator ScreenFadeIn(float gradientTime = 5f){float nowTime = 0.0f;while (nowTime < gradientTime){nowTime += Time.deltaTime;nowFadeAlpha = Mathf.Lerp(1.0f, 0, Mathf.Clamp01(nowTime / gradientTime));SetAlpha();yield return null;}}IEnumerator ScreenFadeOut(float gradientTime = 5f){float nowTime = 0.0f;while (nowTime < gradientTime){nowTime += Time.deltaTime;nowFadeAlpha = Mathf.Lerp(0, 1f, Mathf.Clamp01(nowTime / gradientTime));SetAlpha();yield return null;}}private void SetAlpha(){Color color = fadeColor;color.a = Mathf.Max(currentAlpha, nowFadeAlpha);isGradient = color.a > 0;if (gradientMaterial != null){gradientMaterial.color = color;gradientMaterial.renderQueue = renderQueue;gradientMeshRenderer.material = gradientMaterial;gradientMeshRenderer.enabled = isGradient;}}void CreateModel(){for (float i = -N / 2f; i <= N / 2f; i++){for (float j = -N / 2f; j <= N / 2f; j++){verts.Add(new Vector3(i, j, -N / 2f));}}for (float i = -N / 2f; i <= N / 2f; i++){for (float j = -N / 2f; j <= N / 2f; j++){verts.Add(new Vector3(N / 2f, j, i));}}for (float i = -N / 2f; i <= N / 2f; i++){for (float j = -N / 2f; j <= N / 2f; j++){verts.Add(new Vector3(i, N / 2f, j));}}for (float i = -N / 2f; i <= N / 2f; i++){for (float j = -N / 2f; j <= N / 2f; j++){verts.Add(new Vector3(-N / 2f, j, i));}}for (float i = -N / 2f; i <= N / 2f; i++){for (float j = -N / 2f; j <= N / 2f; j++){verts.Add(new Vector3(i, j, N / 2f));}}for (float i = -N / 2f; i <= N / 2f; i++){for (float j = -N / 2f; j <= N / 2f; j++){verts.Add(new Vector3(i, -N / 2f, j));}}for (int i = 0; i < verts.Count; i++){verts[i] = verts[i].normalized * 0.7f;}CreateMakePos(0);CreateMakePos(1);CreateMakePos(2);OtherMakePos(3);OtherMakePos(4);OtherMakePos(5);Mesh mesh = new Mesh();mesh.vertices = verts.ToArray();mesh.triangles = indices.ToArray();mesh.RecalculateNormals();mesh.RecalculateBounds();Vector3[] normals = mesh.normals;for (int i = 0; i < normals.Length; i++){normals[i] = -normals[i];}mesh.normals = normals;int[] triangles = mesh.triangles;for (int i = 0; i < triangles.Length; i += 3){int t = triangles[i];triangles[i] = triangles[i + 2];triangles[i + 2] = t;}mesh.triangles = triangles;gradientMeshFilter.mesh = mesh;}public void CreateMakePos(int num){for (int i = 0; i < N; i++){for (int j = 0; j < N; j++){int index = j * (N + 1) + (N + 1) * (N + 1) * num + i;int up = (j + 1) * (N + 1) + (N + 1) * (N + 1) * num + i;indices.AddRange(new int[] { index, index + 1, up + 1 });indices.AddRange(new int[] { index, up + 1, up });}}}public void OtherMakePos(int num){for (int i = 0; i < N + 1; i++){for (int j = 0; j < N + 1; j++){if (i != N && j != N){int index = j * (N + 1) + (N + 1) * (N + 1) * num + i;int up = (j + 1) * (N + 1) + (N + 1) * (N + 1) * num + i;indices.AddRange(new int[] { index, up + 1, index + 1 });indices.AddRange(new int[] { index, up, up + 1 });}}}}private void DestoryGradientMesh(){if (gradientMeshRenderer != null)Destroy(gradientMeshRenderer);if (gradientMaterial != null)Destroy(gradientMaterial);if (gradientMeshFilter != null)Destroy(gradientMeshFilter);}
}
Shader "HappyMaster/ScreenFade" {Properties{_Color("Color", Color) = (0,0,0,1)}SubShader{Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }LOD 100ZWrite OffZTest AlwaysBlend SrcAlpha OneMinusSrcAlphaColor[_Color]Pass{}}
}

相关文章:

Unity VR黑屏

picosdk里面的&#xff0c;有修改 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ScreenFade : MonoBehaviour {[Tooltip("颜色")]public Color fadeColor new Color(0.0f, 0.0f, 0.0f, 1.0f);private int renderQ…...

Vue.js 中使用 Watcher 的强大场景和案例

目录 表单验证 示例代码: HTML: 获取 API 数据 示例代码: HTML: 深度监听对象变化 示例代码: HTML: 观察多个数据源 示例代码: HTML: Vue.js 是一个流行的前端框架,以其直观的数据绑定和组件驱动的开发模式而闻名。其中,watch 功能是其响应式编程模型…...

《实现 DevOps 平台(2) · GitLab CI/CD 交互》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…...

【机器学习sklearn实战】岭回归、Lasso回归和弹性网络

一 sklean中模型详解 1.1 Ride regression 1.2 Lasso regression 1.3 ElasticNet 二 算法实战 2.1 导入包 import numpy as np import pandas as pd from sklearn import datasets from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.linear…...

Python 爬虫项目实战六:抓取猫眼电影排行榜的数据

在这篇博客中&#xff0c;我们将通过一个实际的Python爬虫项目&#xff0c;详细讲解如何抓取网页数据。本次选择的实战项目是抓取猫眼电影排行榜的数据&#xff0c;通过这个项目&#xff0c;你将学会如何使用Python编写爬虫&#xff0c;从网页中提取有用的电影信息。 一、项目…...

YOLO系列:从yolov1至yolov8的进阶之路 持续更新中

一、基本概念 1.YOLO简介 YOLO&#xff08;You Only Look Once&#xff09;&#xff1a;是一种基于深度神经网络的对象识别和定位算法&#xff0c;其最大的特点是运行速度很快&#xff0c;可以用于实时系统。 2.目标检测算法 RCNN&#xff1a;该系列算法实现主要为两个步骤&…...

欧拉系统离线安装界面ukui

1、官网下载安装镜像iso后&#xff0c;默认没有gui openEuler | 开源社区 | openEuler社区官网openEuler是一个开源、免费的 Linux 发行版平台&#xff0c;将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。同时&#xff0c;openEuler 也是…...

Milvus向量数据库的简介以及用途

Milvus 是一个开源的向量数据库,专门用于处理和存储高维向量数据。它可以高效地支持各种数据科学和机器学习应用,特别是在涉及到大规模相似度搜索和推荐系统等领域。 以下是 Milvus 的简介以及它的主要用途。 1. Milvus 简介 Milvus 是由 Zilliz 开发的开源分布式向量数据库…...

恒创科技:IPv4 和 IPv6 之间的主要区别

IPv4 和 IPv6 是互联网协议 (IP) 系统中使用的两种版本的 IP 地址格式。虽然它们的主要目的是准确识别、发送和接收互联网上的数据&#xff0c;但 IPv4 和 IPv6 之间存在许多关键差异。 地址格式 IPv4 采用 32 位格式&#xff0c;由 4 个数值(称为八位字节)表示&#xff0c;以点…...

TinyWebserver的复现与改进(1):服务器环境的搭建与测试

计划开一个新坑, 主要是复现qinguoyi/TinyWebServer项目&#xff0c;并且使用其它模块提升性能。 本文开发服务器配置&#xff1a;腾讯云轻量级服务器&#xff0c;CPU - 2核 内存 - 2GB&#xff0c;操作系统 Ubuntu Server 18.04.1 LTS 64bit 打开端口 需要打开服务器3306、80…...

【Python】练习题附带答案

1、使用for循环实现输出9*9乘法表 代码&#xff1a; 2、写代码实现累乘计算器。 示例&#xff1a;用户输入&#xff1a;5*9*87输出答案&#xff1a;3915 代码&#xff1a; 3、写代码实现&#xff0c;循环提示用户输入的内容&#xff08;Q/q终止循环&#xff09;&#xff0c;…...

Springboot集成Proguard生成混淆jar包

背景 当我们需要将 JAR 包交付给第三方时&#xff0c;常常担心代码可能会被反编译。因此&#xff0c;对 JAR 包进行混淆处理显得尤为重要。 市面上有许多 JAR 包源码混淆工具&#xff0c;但真正能稳定投入使用的并不多。例如&#xff0c;ClassFinal (ClassFinal: Java字节码加…...

什么是NLP分词(Tokenization)

在自然语言处理和机器学习的领域里&#xff0c;咱们得聊聊一个超基础的技巧——就是“分词”啦。这个技巧啊&#xff0c;就是把一长串的文字切分成小块&#xff0c;让机器能更容易地“消化”。这些小块&#xff0c;不管大小&#xff0c;单个的字符也好&#xff0c;整个的单词也…...

基于深度学习的图像伪造检测

基于深度学习的图像伪造检测主要利用深度学习技术来识别和检测伪造的图像内容&#xff0c;尤其是在生成对抗网络&#xff08;GAN&#xff09;等技术发展的背景下&#xff0c;伪造图像的逼真程度大大提升。图像伪造检测在信息安全、隐私保护、司法鉴定等领域具有重要意义。以下是…...

Windows11 WSL2 Ubuntu编译安装perf工具

在Windows 11上通过WSL2安装并编译perf工具&#xff08;Linux性能分析工具&#xff09;可以按以下步骤进行。perf工具通常与Linux内核一起发布&#xff0c;因此你需要确保你的内核版本和perf版本匹配。以下是安装和编译perf的步骤&#xff1a; 1. 更新并升级系统 首先&#x…...

探索算法系列 - 前缀和算法

目录 一维前缀和&#xff08;原题链接&#xff09; 二维前缀和&#xff08;原题链接&#xff09; 寻找数组的中心下标&#xff08;原题链接&#xff09; 除自身以外数组的乘积&#xff08;原题链接&#xff09; 和为 K 的子数组&#xff08;原题链接&#xff09; 和可被 …...

Stable Diffusion绘画 | 提示词基础原理

提示词之间使用英文逗号“,”分割 例如&#xff1a;1girl,black long hair, sitting in office 提示词之间允许换行 但换行时&#xff0c;记得在结尾添加英文逗号“,”来进行区分 权重默认为1&#xff0c;越靠前权重越高 每个提示词自身的权重默认值为1&#xff0c;但越靠…...

利用python写一个可视化的界面

要利用Python编写一个可视化界面&#xff0c;你可以使用一些图形库来实现&#xff0c;例如Tkinter、PyQt、wxPython等。以下是一个使用Tkinter的示例代码&#xff1a; import tkinter as tk# 创建一个窗口对象 window tk.Tk()# 定义一个按钮点击事件的处理函数 def buttonCli…...

第13节课:Web Workers与通信——构建高效且实时的Web应用

目录 Web Workers简介Web Workers的基本概念创建和使用Web WorkersWeb Workers的应用场景 WebSocket通信WebSocket的基本概念创建和使用WebSocketWebSocket的应用场景 实践&#xff1a;使用Web Workers和WebSocket示例&#xff1a;使用Web Workers进行大数据集处理示例&#xf…...

pam_pwquality.so模块制定密码策略

目录 设置密码策略的方法pam_pwquality.so配置详解pam_pwquality.so默认密码规则pam_pwquality.so指定密码规则问题补充设置密码策略的方法 这篇文章重点讲通过pam_pwquality.so模块配置密码策略 指定pam_pwquality.so模块参数Centos7开始使用pam_pwquality模块进行密码复杂度…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...