- 2024-11-19Godot 字体边框shader
shader_typecanvas_item;uniformfloatoutline_width=1.0;uniformvec4outline_color:source_color=vec4(1,0,0,1);voidfragment(){vec2uv=UV;vec2uv_up=uv+vec2(0,TEXTURE_PIXEL_SIZE.y)*outline_width;vec2uv_down=uv+vec2(0,-T
- 2024-11-10OpenGL 和 GLSL 在顶点着色器中动态调整裁剪平面参数的简单代码示例
以下是一个使用OpenGL和GLSL在顶点着色器中动态调整裁剪平面参数的简单代码示例://OpenGL初始化代码#include<GL/glew.h>#include<GLFW/glfw3.h>#include<iostream>GLFWwindow*window;//初始化GLFWvoidinitGLFW(){if(!glfwInit()){std::cer
- 2024-11-05微信小程序XR黑色背景视频透明效果(一)
去除黑色背景主要依赖于effect="removeBlack",其中removeBlack为官方demo写的规则,代码如下constxrFrameSystem=wx.getXrFrameSystem();xrFrameSystem.registerEffect('removeBlack',scene=>scene.createEffect({name:"removeBlack",images:[{
- 2024-11-01Qml-ShaderEffect的使用
Qml-ShaderEffect的使用ShaderEffect的概述ShaderEffect使用自定义的顶点和片段着色器用于渲染一个矩形。用于在qml场景中添加阴影、模糊、着色和页面卷曲等效果。Qt5和Qt6中ShaderEffect有一定区别,在Qt6中由于支持不同的渲染API,ShaderEffect是用统一的qsb文件来满足对
- 2024-10-14OpenGL RHI优化
前言随着Vulkan的普及,OpenGL已经在被慢慢淘汰,更轻的API调用可以节省不少性能,尤其是在移动平台上,可以减少CPU开销,进而减少功耗。看起来很完美,但是问题是目前移动平台Vulkan驱动存在很多兼容性问题,大家主流的做法都是通过白名单的方式去开Vulkan,所以目前我们还是要继续以OpenGL为主
- 2024-09-30c++泛型编程
一、模板template1.1概念C++重模板可以让类或函数声明一种通用类型,使得函数或类中的某些成员变量或成员变量的参数、返回值在实际上的使用中可以是任何类型。模板可以让程序员写出与类型无关的代码,是泛型编程的基础。模板主要分为两种实现方式:函数模板类模板1.2函数
- 2024-09-20three.js shader 入门 红旗飘动效果
预览效果1、懒人直接上代码,全部代码效果import*asTHREEfrom"https://esm.sh/three";import{OrbitControls}from"https://esm.sh/three/examples/jsm/controls/OrbitControls";consttextureLoader=newTHREE.TextureLoader()letcontrols;letscene:TH
- 2024-09-15STL-vector容器总结
vector(向量)是C++标准模板库(STL)中最常用的容器之一,它提供了动态数组的功能,可以存储任意类型的元素。vector具有自动管理内存、支持随机访问、动态调整大小等优点,非常适合用于需要频繁增删元素或未知大小的数组场景。下面是对vector的总结和常见用法。先复习一下c++中常用的
- 2024-08-24ThreeJS Shader的效果样例雷达图和大气层(二)
一、雷达图 实现原理:图中是一个旋转的渐变扇形,可以通过先实现一个扇形、然后再实现一个渐变扇形,最后再将扇形旋转来达到最终效果1. 实现一个夹角为O的扇形,已X轴正方向为单位向量M,UV点到(0,0)形成向量N,通过M和N的点乘就可以得到一个夹角,然后判断角度小于O就可以了2. 实
- 2024-08-09Opengl: 使用glsl 将纹理处理成圆角的几种思路
在GLSL中实现纹理圆角效果可以通过多种方法,这些方法各有其优缺点和适用场景。以下是几种常见的实现方法:1.使用距离函数最常见的方法是计算像素到中心的距离,并使用该距离来决定像素是否显示。#version330coreinvec2TexCoord;outvec4FragColor;uniformsampler2Dte
- 2024-07-29GLSL教程 第11章:性能优化和调试
目录11.1GLSL着色器的性能考量11.1.1减少计算复杂度避免不必要的计算使用适当的数据类型优化数学操作11.1.2减少内存访问减少纹理采样次数使用纹理缓存11.1.3优化数据传输减少数据传输量批处理(Batching)11.1.4使用高级渲染技术LevelofDetail(LOD)延迟渲染
- 2024-07-10可视化学习:如何用WebGL绘制3D物体
在之前的文章中,我们使用WebGL绘制了很多二维的图形和图像,在学习2D绘图的时候,我们提过很多次关于GPU的高效渲染,但是2D图形的绘制只展示了WebGL部分的能力,WebGL更强大的地方在于,它可以绘制各种3D图形,而3D图形能够极大地增强可视化的表现能力。相信很多小伙伴都对此有所耳闻,也有不少
- 2024-07-03Cesium 3DTiles customshader的使用-动态高度设置
之前要编辑3DTiles 的shader来实现一些例如压平之类的操作 还需要更改源码Cesium新版本更新了3Dtiles的自定义着色器 可以直接定义两个着色器并往里面传uniform新版本添加3dtiles的方式发生了改变 原有的方式不能用了新版本必须通过fromurl函数进行异步添加即asyncfu
- 2024-06-14ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 添加自定义(GLSL)数据
ArcGISJSAPI高级教程-ArcGISMapsSDKforJavaScript-添加自定义(GLSL)数据核心代码完整代码在线示例ArcGISMapsSDKforJavaScript从4.29开始增加RenderNode类,可以添加数据以及操作FBO(ManagedFBO);通过操作FBO,可以通过后处理实现很多效果,官方提供了几
- 2024-06-07移动游戏的性能优化 | 材质优化篇
材质是什么虚幻引擎是以hlsl着色语言为基础,来实现vs、ps、cs等,引擎底层提供了一套翻译系统,将hlsl翻译成gpu可执行的代码。 本篇文章限制下两个名词的定义: ● 材质:特指在虚幻引擎材质编辑界面通过连线等方式,生成的材质资源,它是蓝图系统的产物。材质资源会被转成hlsl代码
- 2024-04-04第三个OpenGL程序,shaders _ 后续 之 uniform
效果: 代码main.cpp#include<iostream>#include<glad/glad.h>#include<glfw3.h>#include<math.h>usingnamespacestd;//回调函数,每当窗口改变大小,视口大小也跟随改变voidframebuffer_size_callback(GLFWwindow*window,intwidth,intheight){glV
- 2024-04-04第三个OpenGL程序,shaders
效果: GLSL 顶点着色器源码#version330corelayout(location=0)invec3aPos;//位置变量的属性位置值为0outvec4vertexColor;//为片段着色器指定一个颜色输出voidmain(){gl_Position=vec4(aPos,1.0);//注意我们如何把一个vec3作为vec4的构造
- 2024-04-02vscode shadertoy插件,非常方便的glsl着色器编写工具
很著名的shadertoy网站,集合了非常多大神利用数学写出美妙的shader效果。像shadertoy创始人之一的IQ大神它在这方面有很多的建树。他的利用光线步进和躁声可以创建很多不可思议的3D场景。 vscode有一件shadertoy的插件,安装后可以新建一个*.glsl文件,写好代码就可以直接运行看效
- 2024-04-01ShadowToy-Smooth Mouse Drawing
ShadowToy-SmoothMouseDrawing源码分析简概SmoothMouseDrawing源码分析学习。源码Image//Arecreationofhttps://lazybrush.dulnan.net///Controls://-Mousetodraw//-L:togglebetweenquadraticbeziercurvesandlinesegments//-S:toggleSDFv
- 2024-01-30OpenGL学习(三)——GLSL
OpenGL学习(三)——GLSL参考资料:【双语】【TheCherno】OpenGL_哔哩哔哩_bilibili[LearnOpenGLCN(learnopengl-cn.github.io)](https://learnopengl-cn.github.io/01Gettingstarted/02Creatingawindow/)LearnOpenGL示例环境搭建-知乎(zhihu.com)GLSL着色器(Shad
- 2023-11-10着色器
概念:attribute用于向顶点着色器,传输几何图形待处理的各种属性,例如:顶点坐标,UV坐标等等注意:attribute只能用于顶点着色器中,值在运行时会从几何图形属性中取值点击查看代码functioncreateBasic(){//目标:着色器变量-attribute使用//作用:用于向顶点着色器中传入几
- 2023-10-29osg 使用整理 (9):文本渲染
osg使用整理(9):文本渲染1FreeType文本渲染 FreeType用于加载TrueType字体并渲染到位图的库。TrueType字体通过数学公式表示的曲线来描述字体轮廓。类似于矢量图像,这些光栅化后的字体图像可以根据需要的字体高度来生成。FreeType所做的事就是加载TrueType字体并为每一个字形生
- 2023-10-26cesium 加载3dtiles
注意cesium版本问题,还有这个是异步加载,定位到该模型时要加个延时settimeout效果 代码如下//3dtiles functionaddThreeDTiles(url,option){ //开启地形深度检测: //控制在渲染场景时,相机是否进行深度测试以避免将被遮挡的物体绘制在前
- 2023-10-26CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(二)、具体操作步骤
具体操作步骤接下来以一个制造旋转效果的shader为例子,提供了这些参数的设置:旋转速度float旋转中心位置vec2逆时针/顺时针bool扭曲度float并在使用的贴图一致的前提下并且参数不同的值都能够合批。最终项目可以从GITHUB获取。CCC版本:3.8.0深入了解可以阅读后续