Unity3d场景渲染出图

制作了精美的场景,需要出图给同事使用,还在用QQ截图?那渣渣的画质,根本满足不了需求,现在好了,有了我们的ScreenshotTaker工具,帮你轻松解决这个问题。

请复制代码内容到脚本中,并置于Editor文件夹下。

//C# Example
using UnityEditor;
using UnityEngine;[ExecuteInEditMode]
public class Screenshot : EditorWindow
{int resWidth = Screen.width*4; int resHeight = Screen.height*4;public Camera myCamera;int scale = 1;string path = "";bool showPreview = true;RenderTexture renderTexture;bool isTransparent = false;// Add menu item named "My Window" to the Window menu[MenuItem("Tools/Saad Khawaja/Instant High-Res Screenshot")]public static void ShowWindow(){//Show existing window instance. If one doesn't exist, make one.EditorWindow editorWindow = EditorWindow.GetWindow(typeof(Screenshot));editorWindow.autoRepaintOnSceneChange = true;editorWindow.Show();editorWindow.title = "Screenshot";}float lastTime;void OnGUI(){EditorGUILayout.LabelField ("Resolution", EditorStyles.boldLabel);resWidth = EditorGUILayout.IntField ("Width", resWidth);resHeight = EditorGUILayout.IntField ("Height", resHeight);EditorGUILayout.Space();scale = EditorGUILayout.IntSlider ("Scale", scale, 1, 15);EditorGUILayout.HelpBox("The default mode of screenshot is crop - so choose a proper width and height. The scale is a factor " +"to multiply or enlarge the renders without loosing quality.",MessageType.None);EditorGUILayout.Space();GUILayout.Label ("Save Path", EditorStyles.boldLabel);EditorGUILayout.BeginHorizontal();EditorGUILayout.TextField(path,GUILayout.ExpandWidth(false));if(GUILayout.Button("Browse",GUILayout.ExpandWidth(false)))path = EditorUtility.SaveFolderPanel("Path to Save Images",path,Application.dataPath);EditorGUILayout.EndHorizontal();EditorGUILayout.HelpBox("Choose the folder in which to save the screenshots ",MessageType.None);EditorGUILayout.Space();//isTransparent = EditorGUILayout.Toggle(isTransparent,"Transparent Background");GUILayout.Label ("Select Camera", EditorStyles.boldLabel);myCamera = EditorGUILayout.ObjectField(myCamera, typeof(Camera), true,null) as Camera;if(myCamera == null){myCamera = Camera.main;}isTransparent = EditorGUILayout.Toggle("Transparent Background", isTransparent);EditorGUILayout.HelpBox("Choose the camera of which to capture the render. You can make the background transparent using the transparency option.",MessageType.None);EditorGUILayout.Space();EditorGUILayout.BeginVertical();EditorGUILayout.LabelField ("Default Options", EditorStyles.boldLabel);if(GUILayout.Button("Set To Screen Size")){resHeight = (int)Handles.GetMainGameViewSize().y;resWidth = (int)Handles.GetMainGameViewSize().x;}if(GUILayout.Button("Default Size")){resHeight = 1440;resWidth = 2560;scale = 1;}EditorGUILayout.EndVertical();EditorGUILayout.Space();EditorGUILayout.LabelField ("Screenshot will be taken at " + resWidth*scale + " x " + resHeight*scale + " px", EditorStyles.boldLabel);if(GUILayout.Button("Take Screenshot",GUILayout.MinHeight(60))){if(path == ""){path = EditorUtility.SaveFolderPanel("Path to Save Images",path,Application.dataPath);Debug.Log("Path Set");TakeHiResShot();}else{TakeHiResShot();}}EditorGUILayout.Space();EditorGUILayout.BeginHorizontal();if(GUILayout.Button("Open Last Screenshot",GUILayout.MaxWidth(160),GUILayout.MinHeight(40))){if(lastScreenshot != ""){Application.OpenURL("file://" + lastScreenshot);Debug.Log("Opening File " + lastScreenshot);}}if(GUILayout.Button("Open Folder",GUILayout.MaxWidth(100),GUILayout.MinHeight(40))){Application.OpenURL("file://" + path);}if(GUILayout.Button("More Assets",GUILayout.MaxWidth(100),GUILayout.MinHeight(40))){Application.OpenURL("https://www.assetstore.unity3d.com/en/#!/publisher/5951");}EditorGUILayout.EndHorizontal();if (takeHiResShot) {int resWidthN = resWidth*scale;int resHeightN = resHeight*scale;RenderTexture rt = new RenderTexture(resWidthN, resHeightN, 24);myCamera.targetTexture = rt;TextureFormat tFormat;if(isTransparent)tFormat = TextureFormat.ARGB32;elsetFormat = TextureFormat.RGB24;Texture2D screenShot = new Texture2D(resWidthN, resHeightN, tFormat,false);myCamera.Render();RenderTexture.active = rt;screenShot.ReadPixels(new Rect(0, 0, resWidthN, resHeightN), 0, 0);myCamera.targetTexture = null;RenderTexture.active = null; byte[] bytes = screenShot.EncodeToPNG();string filename = ScreenShotName(resWidthN, resHeightN);System.IO.File.WriteAllBytes(filename, bytes);Debug.Log(string.Format("Took screenshot to: {0}", filename));Application.OpenURL(filename);takeHiResShot = false;}EditorGUILayout.HelpBox("In case of any error, make sure you have Unity Pro as the plugin requires Unity Pro to work.",MessageType.Info);}private bool takeHiResShot = false;public string lastScreenshot = "";public string ScreenShotName(int width, int height) {string strPath="";strPath = string.Format("{0}/screen_{1}x{2}_{3}.png", path, width, height, System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"));lastScreenshot = strPath;return strPath;}public void TakeHiResShot() {Debug.Log("Taking Screenshot");takeHiResShot = true;}}

使用方法,非常的简单,不需要动脑,看图吧。

看完教程,亲自动手实践吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35398.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【图形学】30 前向渲染多光照场景代码理解

来源:《UNITY SHADER入门精要》 文章目录 1、代码理解 1、代码理解 我们现在要注意光源的 5 个属性:位置、方向、颜色、强度、衰减。   在理解代码之前,我们依然需要熟悉我们的理论,主要我们要设置两个 Pass,注意它…

OpenGL的3D场景模型大作业

【题目】 opengl 3D环境开发 本文标题:OpenGL的3D场景模型大作业 本文链接:https://xygeng.cn/post/84.html 作者授权:除特别说明外,本文由 庚哥哥 原创编译并授权 木芽博客 刊载发布。 版权声明:本文不使用任何协议…

RealityCapture场景建模笔记

Unity Photogrammetry Workflow 5.2.8 着色和贴纹理(Colorize or Texture)5.2.10. 网格输出(Mesh export)输出附有颜色信息的Mesh/点云 5.2.8 着色和贴纹理(Colorize or Texture) 选择哪个选项将取决于重建…

美国藤校Top30大学对IB成绩的要求

众所周知,IB体系是目前全球认可度比较高的国际课程。那么,用IBDP成绩申请美国TOP30大学需要什么样的成绩? 小智今天来带大家好好研究下美国TOP30大学对IB成绩的要求。 普林斯顿大学 Princeton University 普林斯顿大学对于IB成绩没有具体要…

2023 chatgptAPI查询 原生PHP+html+js+css代码

资源介绍 单文件不压缩6KB不到,总150行原生PHP html js css代码实现查询chatgptAPI,并打字效果展现回复内容(sse流式消息) 使用注意填写自己的APIKEY,推荐美国服务器或者主机部署。适合个人自用。单文件源码! 使用源码请先到官方申请apiKey…

推荐自媒体和文案相关神器(短视频与公众号)

一、新片场 介绍:新片场汇聚全球原创优质视频及创作人,提供4K、无广告、无水印视频观看,专业的视频艺术学习教程,正版视觉素材交易等,与百万创作人一起成长 网址:https://www.xinpianchang.com/ 图片&am…

自媒体人必看的几个文案网站,让文案创作更有色

作为自媒体人,无论是图文类还是视频类的,文案都是必不可少的,写出火爆的文案能为我们的内容增添色彩,当然这不可能一蹴而就,需要我们平时多看优质文案,尝试自己进行创作。 文案狗 文案狗是一个文案创意小工…

自媒体人绝对要知道的6款软件工具!免费文案、配音不在话下

NO.1丨喵盐配音(小程序) 喵盐配音,它是我近期使用次数较多的配音小程序。这是一款专注于文字转语音的智能语音合成小程序,不需要下载,v小橙序搜索在线使用。其拥有200多个抖音热门发音人,支持普通话、英语、…

chatgpt赋能python:Python代码报错?别慌!这些处理技巧教你轻松解决

Python代码报错?别慌!这些处理技巧教你轻松解决 作为一名有10年python编程经验的工程师,我深知遇到代码报错时的无助感。代码中报错似乎总会出现在最需要正常运行的时候。但是,不要慌!在这篇文章中,我将分…

商汤科技2020笔试题

题型分为20道选择题和3道编程大题。 1.选择题 struct1与struct2的区别 一个是Stuts1 ,一个是Stuts2,这是最大的区别,技术方面,Stuts1有个核心控制器,但是只提供了一个接口,也就是execute,还要配…

四面楚歌,商汤科技该如何在AI领域破局

https://www.toutiao.com/a6663198506368369159/ 文/于斌 在经历了多轮业内数额第一的融资之后,国内人工智能创业公司商汤科技再次传出了融资消息。这次据悉准备融资20亿美元。此前在经过软银中国投资10亿美元之后,商汤科技的估值已经达到60亿美元&…

商汤科技面试准备

商汤科技面试准备 秋招收到了东软医疗算法,明略科技算法,云从算法的Offer 但是在我沉淀了整个求职季之后 心心念念的商汤,终终终终终终终终终于给我发起面试邀请了 商汤一直是我最想进的企业,没有之一 一些长久以来,秋…

要做中国OpenAI的很多,但智源要打造大模型领域的Linux

衡宇 发自 凹非寺量子位 | 公众号 QbitAI “要做中国的OpenAI!”“要打造中国版ChatGPT!”ChatGPT的火以燎原之势蔓延到每一个角落。 人们目光的焦点聚集到这个具体的现象级应用,或者其它大模型支撑的类ChatGPT产品上。大模型似乎成为了人人都…

通过配置不当的微软app劫持Bing 搜索结果,获得4万美元漏洞奖励

聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 一款配置不当的微软应用可使任何人登录并实时修改 Bing.com 搜索结果以及注入 XSS 攻击,攻陷 Office 365 用户的账号。 Wiz公司的研究人员发现了该问题并将其描述为“BingBang”…

解读ChatGPT背后的技术重点:RLHF、IFT、CoT、红蓝对抗

近段时间,ChatGPT 横空出世并获得巨大成功,使得 RLHF、SFT、IFT、CoT 等这些晦涩的缩写开始出现在普罗大众的讨论中。这些晦涩的首字母缩略词究竟是什么意思?为什么它们如此重要?我们调查了相关的所有重要论文,以对这些…

谷歌优化扩散模型!在三星手机上运行Stable Diffusion,12秒内出图!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【扩散模型】微信技术交流群 转载自:机器之心 | 编辑:陈萍、小舟 Speed Is All You Need:谷歌提出针对 Stable Diffusion 一些优化建议&am…

再次加入OpenAI,特斯拉前AI总监Andrej Karpathy刚刚官宣!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>CV微信技术交流群 转载自:机器之心 官宣回归OpenAI,特斯拉前AI高级总监Andrej Karpathy的下家定了。 刚刚,特斯拉前 AI 高级总监 Andrej K…

行业前沿 | 畅想AIGC技术研究与应用实践(一)

AIGC的火热之势已经蔓延到各行各业,技术浪潮冲击下,关于AIGC创业、AIGC未来发展方向以及AIGC的应用实践等,企业、投资者以及技术产品专家们有着不一样的思考。 近日,数美科技联合AMD举办的AIGC沙龙活动,邀请了经纬创投…

用GPT-4一天赚440元/ PyTorch2.0稳定版正式发布/ 谷歌眼镜彻底告别舞台…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 嗯咳咳~今天是3月16日星期()。 V我50(Doge)带你看看科技圈都发生了哪些大事。 周鸿祎:GPT要消灭人类 周鸿祎又语出惊人!前脚GPT-4刚刚发布&#xff0…

互动福利|免费试用阿里云端TuGraph图数据库,还有GoPro、filco键盘、苹果HomePod mini等你拿!...

想要对数据关系进行 更好的数据可视化? 更高效的数据处理? 更精准的数据分析? 更快的查询速度? 来试试图数据库吧! 为鼓励更多用户探索应用图数据库,TuGraph联合阿里云计算巢,开放限量免费…