草庐IT

geometry-shader

全部标签

swift - Metal/Metal 2 + swift : How to pass complex Swift structure as shader argument?

我在Metal中有一个结构:structBlurDesc{shortfenceRows;shortoffs;shortsampleCnt;floatmuls[64];};它用作着色器参数:kernelvoidhBlurCompute(constantBlurDesc&blurDesc[[buffer(0)]],texture2dsrcTexture[[texture(0)]],texture2dhBlurTexture[[texture(1)]],ushortgid[[thread_position_in_grid]]){这是相应的Swift结构:structBlurDesc{varf

Cesium 1.02.0 及以上版本下自定义材质报错:[Cesium WebGL] Fragment shader compile log: ERROR: 0:8: ‘texture2D‘

Cesium1.02.0及以上版本下自定义材质报错:[CesiumWebGL]Fragmentshadercompilelog:ERROR:0:8:'texture2D'报错原因解决方法完整代码在线示例2023年4月19日更新—搞了一个Cesium镜像,欢迎使用:沙盒示例和API在看到Cesium官方更新的日志,最新版(1.103.0)支持平滑缩放,于是升级尝试一下。结果偶然发现,之前写的墙体动态效果报错,经过调试,找到原因,Cesium新版对WebGL2支持有变化,这里记录一下。本文包括,报错原因、解决方法、在线示例三部分。报错原因报错原因:Cesium自1.102.0开始,为了更好支持跨平

Unity中Shader的UV扭曲效果的实现

文章目录前言一、实现的思路1、在属性面板暴露一个扭曲贴图的属性2、在片元结构体中,新增一个float2类型的变量,用于独立存储将用于扭曲的纹理的信息3、在顶点着色器中,根据需要使用TRANSFORM_TEX对Tilling和Offset插值;以及根据需要使用_Time相乘实现流动效果4、在片元着色器中,使用fixed4变量来存储,对扭曲纹理的采样结果5、使用lerp(A,B,alpha)进行线性插值6、最后用线性插值后的结果对主纹理进行采样二、测试代码前言Unity中Shader的UV扭曲效果的实现一、实现的思路1、在属性面板暴露一个扭曲贴图的属性2、在片元结构体中,新增一个float2类型的

unity 颜色渐变的shader

在Unity中,可以使用Shader来实现颜色渐变的效果。要实现这个效果,你需要在Unity中创建一个新的Shader文件。你可以使用SurfaceShader来简化这个过程,因为SurfaceShader会自动为你生成颜色缓冲区和基本光照。在Shader中,你需要定义一些变量来存储颜色渐变的起始颜色和终止颜色。然后,你可以使用一个叫做"lerp"的函数来插值这两个颜色。Lerp函数可以根据一个权重值在两个颜色之间进行插值。这是一个示例Shader的代码:Shader"Custom/ColorGradient"{Properties{_Color1("StartColor",Color)=(1

Unity Shader - if 和 keyword 的指令比较

文章目录环境TestingIf4Sampleunityshaderlab中的TestingIf4Sample.shadergraphicsanalyzer中的TestingIf4Sample.glslTestingKW4Sampleunityshaderlab中的TestingKW4Sample.shadergraphicsanalyzer中的TestingKW4Sample.glsl比较环境Unity:2020.3.37f1Pipeline:BRPTestingIf4Sample下面是shaderlab和armmobilestudio中的graphicsanalyzer的glsl代码unit

Threejs实现数字人绿幕视频背景透明播放,Shader绿幕视频抠像

个人主页: 左本Web3D,更多案例预览请点击==》 在线案例个人简介:专注Web3D使用ThreeJS实现3D效果技巧和学习案例💕💕积跬步以至千里,致敬每个爱学习的你。喜欢的话请三连,有问题请私信或者加微信        在数字人应用中,绿幕技术是一种常见的技术,也是实现数字人绿幕视频背景透明播放的基础。所谓绿幕,就是在录制数字人视频时,用绿色背景替代实景背景,并在后期制作中将这个绿色背景抠掉,留下数字人在实景背景下的视频,实现数字人的半透明化,或者将数字人放到任意背景中,从而实现很多炫酷的视觉效果。加入场景后原视频                绿幕视频背景抠像的过程,需要使用专门的图像处

【Unity100个实用小技巧】如何修改UI上材质的Shader

☀️博客主页:CSDN博客主页💨本文由萌萌的小木屋原创,首发于CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞👍收藏⭐留言📝,如有错误请指正📆未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------​​​​Unity小科普老规矩,先介绍一下Unity的科普小知识:​​​ Unity是行业领先的实时3D开发平台。包括游戏开发,电影,AR/VR,虚拟现实在内的所有创作者,可以将梦想照进现实。Unity提供了一套完整完善的软件解决方案,可用于创作,运营和模拟任何2D和3D的内容,进本全

让AI臣服,而不是被它替代!让ChatGPT为我们编写Unity3d Shaderlab的着色器(shader)

前言ChatGPT的火热大家应该都有目共睹,文案工作者、翻译工作者和画师等各种行业都在被嘲即将失业。不光是这些岗位的员工,作为资深社畜程序猿也能感受到会受到冲击。网上很多人都在发ChatGPT写的代码,并开始大肆宣扬AI要取代程序员了,今天测一测使用ChatGPT来生成一些代码,看看到底AI到底会不会真的直接替程序猿,还是大家炒作的噱头。当然使用ChatGPT还是需要各种操作,科学上网、注册和付费等,这里就不进行教学了,如果愿意折腾的请自行查询折腾吧。这里就以Unity3d的着色器需求进行了测试。绿幕抠图绿幕抠图功能在视频交互场景还是很有这方面的需求,在有绿幕摄像头画面的场景中,将人物进行抠图

Unity Shader:常用的C#与shader交互的方法

 俗话说久病成医,虽然不是专业技术美术,但代码写久了自然会积累一些常用的shader交互方法。零零散散的,总结如下:1,改变UGUI的材质球属性 有时候我们需要改变ui的一些属性,从而实现想要的效果。通常UGUI上有如下属性,而我们想要改变,就需要获取到Material这个属性: 这里拿Image来举例, 简单的调用示例如下(关联测试):usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;//////测试UI闪白效果///publicclassTestUISha

Unity UI.Image 六边形+流光 Shader

效果图参考代码Shader"Custom/HexFlowImage"{Properties{[PerRendererData]_MainTex("SpriteTexture",2D)="white"{}_Color("Tint",Color)=(1,1,1,1)_StencilComp("StencilComparison",Float)=8_Stencil("StencilID",Float)=0_StencilOp("StencilOperation",Float)=0_StencilWriteMask("StencilWriteMask",Float)=255_StencilReadMa