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里面的,有修改 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 交互》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
【机器学习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 爬虫项目实战六:抓取猫眼电影排行榜的数据
在这篇博客中,我们将通过一个实际的Python爬虫项目,详细讲解如何抓取网页数据。本次选择的实战项目是抓取猫眼电影排行榜的数据,通过这个项目,你将学会如何使用Python编写爬虫,从网页中提取有用的电影信息。 一、项目…...
YOLO系列:从yolov1至yolov8的进阶之路 持续更新中
一、基本概念 1.YOLO简介 YOLO(You Only Look Once):是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统。 2.目标检测算法 RCNN:该系列算法实现主要为两个步骤&…...
欧拉系统离线安装界面ukui
1、官网下载安装镜像iso后,默认没有gui openEuler | 开源社区 | openEuler社区官网openEuler是一个开源、免费的 Linux 发行版平台,将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。同时,openEuler 也是…...
Milvus向量数据库的简介以及用途
Milvus 是一个开源的向量数据库,专门用于处理和存储高维向量数据。它可以高效地支持各种数据科学和机器学习应用,特别是在涉及到大规模相似度搜索和推荐系统等领域。 以下是 Milvus 的简介以及它的主要用途。 1. Milvus 简介 Milvus 是由 Zilliz 开发的开源分布式向量数据库…...
恒创科技:IPv4 和 IPv6 之间的主要区别
IPv4 和 IPv6 是互联网协议 (IP) 系统中使用的两种版本的 IP 地址格式。虽然它们的主要目的是准确识别、发送和接收互联网上的数据,但 IPv4 和 IPv6 之间存在许多关键差异。 地址格式 IPv4 采用 32 位格式,由 4 个数值(称为八位字节)表示,以点…...
TinyWebserver的复现与改进(1):服务器环境的搭建与测试
计划开一个新坑, 主要是复现qinguoyi/TinyWebServer项目,并且使用其它模块提升性能。 本文开发服务器配置:腾讯云轻量级服务器,CPU - 2核 内存 - 2GB,操作系统 Ubuntu Server 18.04.1 LTS 64bit 打开端口 需要打开服务器3306、80…...
【Python】练习题附带答案
1、使用for循环实现输出9*9乘法表 代码: 2、写代码实现累乘计算器。 示例:用户输入:5*9*87输出答案:3915 代码: 3、写代码实现,循环提示用户输入的内容(Q/q终止循环),…...
Springboot集成Proguard生成混淆jar包
背景 当我们需要将 JAR 包交付给第三方时,常常担心代码可能会被反编译。因此,对 JAR 包进行混淆处理显得尤为重要。 市面上有许多 JAR 包源码混淆工具,但真正能稳定投入使用的并不多。例如,ClassFinal (ClassFinal: Java字节码加…...
什么是NLP分词(Tokenization)
在自然语言处理和机器学习的领域里,咱们得聊聊一个超基础的技巧——就是“分词”啦。这个技巧啊,就是把一长串的文字切分成小块,让机器能更容易地“消化”。这些小块,不管大小,单个的字符也好,整个的单词也…...
基于深度学习的图像伪造检测
基于深度学习的图像伪造检测主要利用深度学习技术来识别和检测伪造的图像内容,尤其是在生成对抗网络(GAN)等技术发展的背景下,伪造图像的逼真程度大大提升。图像伪造检测在信息安全、隐私保护、司法鉴定等领域具有重要意义。以下是…...
Windows11 WSL2 Ubuntu编译安装perf工具
在Windows 11上通过WSL2安装并编译perf工具(Linux性能分析工具)可以按以下步骤进行。perf工具通常与Linux内核一起发布,因此你需要确保你的内核版本和perf版本匹配。以下是安装和编译perf的步骤: 1. 更新并升级系统 首先&#x…...
探索算法系列 - 前缀和算法
目录 一维前缀和(原题链接) 二维前缀和(原题链接) 寻找数组的中心下标(原题链接) 除自身以外数组的乘积(原题链接) 和为 K 的子数组(原题链接) 和可被 …...
Stable Diffusion绘画 | 提示词基础原理
提示词之间使用英文逗号“,”分割 例如:1girl,black long hair, sitting in office 提示词之间允许换行 但换行时,记得在结尾添加英文逗号“,”来进行区分 权重默认为1,越靠前权重越高 每个提示词自身的权重默认值为1,但越靠…...
利用python写一个可视化的界面
要利用Python编写一个可视化界面,你可以使用一些图形库来实现,例如Tkinter、PyQt、wxPython等。以下是一个使用Tkinter的示例代码: import tkinter as tk# 创建一个窗口对象 window tk.Tk()# 定义一个按钮点击事件的处理函数 def buttonCli…...
第13节课:Web Workers与通信——构建高效且实时的Web应用
目录 Web Workers简介Web Workers的基本概念创建和使用Web WorkersWeb Workers的应用场景 WebSocket通信WebSocket的基本概念创建和使用WebSocketWebSocket的应用场景 实践:使用Web Workers和WebSocket示例:使用Web Workers进行大数据集处理示例…...
pam_pwquality.so模块制定密码策略
目录 设置密码策略的方法pam_pwquality.so配置详解pam_pwquality.so默认密码规则pam_pwquality.so指定密码规则问题补充设置密码策略的方法 这篇文章重点讲通过pam_pwquality.so模块配置密码策略 指定pam_pwquality.so模块参数Centos7开始使用pam_pwquality模块进行密码复杂度…...
SEO工具如何提供网站的整体优化建议
SEO工具如何提供网站的整体优化建议 在当今竞争激烈的互联网市场中,网站的整体优化是每一个企业和个人网站的重要任务。SEO工具在这一过程中扮演着不可或缺的角色。SEO工具如何提供网站的整体优化建议呢?本文将从问题分析、原因说明、解决方法、注意事项…...
TypeVar
## 关于Python里的TypeVar,你可能想知道的 最近在整理一些旧代码,翻到几年前写的一个通用缓存工具类,里面用到了TypeVar。当时注释里只简单写了一句“用于类型提示”,现在回头看,觉得可以展开聊聊这个东西。 TypeVar是…...
终极Fluxion数组操作指南:掌握ArrayUtils.sh提升脚本效率的10个技巧
终极Fluxion数组操作指南:掌握ArrayUtils.sh提升脚本效率的10个技巧 【免费下载链接】fluxion Fluxion is a remake of linset by vk496 with enhanced functionality. 项目地址: https://gitcode.com/gh_mirrors/fl/fluxion Fluxion作为一款功能强大的网络工…...
VisualCppRedist AIO:一站式解决Windows运行库问题的终极方案
VisualCppRedist AIO:一站式解决Windows运行库问题的终极方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 问题场景:运行库缺失如何让…...
Qwen Pixel Art入门必看:自动触发词机制+参数调优详细步骤解析
Qwen Pixel Art入门必看:自动触发词机制参数调优详细步骤解析 1. 像素艺术生成服务介绍 Qwen Pixel Art是基于Qwen-Image-2512大模型和Pixel Art LoRA微调模块打造的专业像素艺术生成服务。这项技术能够将普通文字描述转化为精美的像素风格图像,特别适…...
自主飞行控制探索:PX4开源飞控的模块化架构与行业应用价值
自主飞行控制探索:PX4开源飞控的模块化架构与行业应用价值 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot PX4开源飞控系统作为无人机领域的核心解决方案,通过模块化架构设计…...
WooCommerce 的 SEO 优化技巧有哪些_WooCommerce 的结账流程如何设置
WooCommerce 的 SEO 优化技巧有哪些 在当今电子商务领域,WooCommerce 作为一个功能强大的 WordPress 插件,被广泛用于搭建电子商店。一个功能强大的平台也需要优化,特别是 SEO 优化。SEO(Search Engine Optimization,…...
3大行业痛点突破:Umi-OCR离线文字识别革新方案
3大行业痛点突破:Umi-OCR离线文字识别革新方案 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …...
旧Mac焕新:使用OpenCore Legacy Patcher让2008-2017年设备支持最新macOS系统
旧Mac焕新:使用OpenCore Legacy Patcher让2008-2017年设备支持最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧设备升级正成为越…...
Qwen3.5-9B-AWQ-4bit效果展示:多行表格截图→结构化JSON输出+中文摘要双模式
Qwen3.5-9B-AWQ-4bit效果展示:多行表格截图→结构化JSON输出中文摘要双模式 1. 模型能力惊艳展示 千问3.5-9B-AWQ-4bit作为一款支持图像理解的多模态模型,在处理表格类图片时展现出令人印象深刻的能力。它不仅能够准确识别表格内容,还能提供…...
