自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (2)
  • 收藏
  • 关注

原创 Filament FrameGraph结构

FrameGraph整体是一个有向无环图的结构,Node和Edge以数组形式存储在DependencyGraph中。//宏替换将包含设备渲染API的函数体打包进为command,加入环形缓冲,后续在Loop线程执行()根据read/write调用关系,将PassNode存储到DependencyGraph。指定虚拟资源跟当前PassNode的关系(read/write)自定执行渲染过程回调函数,使用资源,调用Driver渲染接口。

2024-02-02 15:26:42 839

原创 Cocos XR的WebBox实现流程

Jsb 自动绑定的接口:工程目录\build\android\proj\build\Debug\xxxxxxx\arm64-v8a\generated\cocos\bindings\auto\jsb_webview_auto.cpp/h。控件实现:engine\native\cocos\platform\android\java\src\com\cocos\lib\CocosWebView.java。c++ 封装接口:engine\native\cocos\ui\webview\WebView.h。

2024-02-02 14:37:07 689

原创 CocosCreator3.8源码分析

3.1 V8的API定义了几个基本概念:句柄(handle)、作用域(scope)、上下文环境(Context)、模板(Templates)。上下文环境Context就是脚本的运行环境,JavaScript的变量、函数等都存在于上下文环境Context中。Context可以嵌套,即当前函数有一个Context,调用其它函数时如果又有一个Context,则在被调用的函数中javascript是以最近的Context为准的,当退出这个函数时,又恢复到了原来的Context。

2024-02-02 14:32:59 1001

原创 shadertoy生成PBR场景

Shadertoy不支持VBO,因此shadertoy下的建模需要借助SDF(符号距离函数)的方式,渲染借助步进式光线追踪(Ray-marching)算法,结合Blinn-Phong或PBR光照模型,渲染场景。

2024-01-10 11:28:09 768

转载 PBR反射率方程

不过,一般我们会对D(m)(n·m)进行积分,也就是D(m)在宏观表面上的投影,这样我们能够使得宏观表面的区域等于1,如下图所示。菲涅尔反射(Fresnel Reflectance)或者菲涅尔效果(Fresnel Effect),即当光入射到折射率不 同的两个材质的分界面时,一部分光会被反射,而我们所看到的光线会根据我们的观察角度 以不同强度反射的现象。D(h)来描述组成表面一点 的所有微表面的法线分布概率。当一个平面相对比较粗糙的时候,平面表面上的微平面有可能挡住其他的微平面从而减少表面所反射的光线。

2024-01-09 10:47:41 55

原创 光线追踪原理

对于图片中的每个像素,它会将主光线射入场景(从眼睛(或相机)射入场景的第一条光线称为主光线、能见度光线或相机光线。该主光线的方向是通过追踪从眼睛到该像素中心的线来获得的。一旦我们设置了主光线的方向,我们就会检查场景中的每个对象,看看它是否与其中任何一个相交。几十年来,该算法的速度一直是光线追踪的主要缺点。值的混合取决于主光线(或观察方向)与物体的法线和折射率之间的角度。如果该光线在到达光线的途中不与物体相交,则命中点将被照亮。反射和折射方向都基于交点处的法线和入射光线(主光线)的方向。

2024-01-05 15:33:26 356

原创 Blender学习--制作带骨骼动画的机器人

因为绑定其他模型又要切换回物体模型,选中之后再切换到姿态模式,不太方便,可以选菜单,取消锁定物体模式,然后再进行剩余模型的骨骼绑定,绑定完所有骨骼,再锁定物体模式。Blender导出模型为fbx格式,Cocos导入,添加模型到场景中,选中模型,属性检查器中的动画默认剪辑改为骨架那个clip,选中加载后播放。Shift +F12 切换到动作编辑器。头部骨骼就和模型绑定到一起了。时间关系步骤有时间补充。时间关系步骤有时间补充。

2023-12-10 17:53:45 927

原创 Android Studio build.gradle获取项目绝对路径

【代码】Android Studio build.gradle获取项目绝对路径。

2023-11-29 09:54:24 731

原创 Filament引擎分析--command抽象设备API

设备接口抽象:设备API抽象为Command资源抽象:使用虚拟资源,在实际用到时再创建,方便剔除无用资源。

2023-11-28 15:36:07 742 2

原创 圆柱体曲面mesh实现

AR空间中的矩形窗口修改为圆柱体面的窗口,从眼睛(双目摄像机)观察的时候,远的部分看起来小的情况就会有所改善,而且曲面窗口看起来更美观,下面我们就实现一个曲面窗口的mesh计算。

2023-11-27 10:31:35 391

原创 Blender入门--模型贴图傻瓜级教程

选中平面,下方着色器编辑器中图像纹理组件的矢量接头拉线,搜索选映射,映射组件的矢量接头拉线,搜索选纹理坐标UV,修改映射组件中的旋转值,将图片方向调正。Blender中导出模型为.fxb格式,然后就可以在Cocos Creator中导入使用了。下面选中平面,通过着色器编辑器给平面添加个材质,来添加贴图。Shift+A ,添加一个经纬球,再加一个平面。鼠标右键平面点细分,切割次数填20左右。选中平面,添加缩裹修改器。再按0退出摄像机视角。

2023-11-26 14:05:07 2310

原创 HDR和泛光

当一个帧缓冲的颜色缓冲的内部格式被设定成了GL_RGB16F, GL_RGBA16F, GL_RGB32F 或者GL_RGBA32F时,这些帧缓冲被叫做浮点帧缓冲(Floating Point Framebuffer),浮点帧缓冲可以存储超过0.0到1.0范围的浮点值,所以非常适合HDR渲染。我们能做的是用一个不同的方程与/或曲线来转换这些HDR值到LDR值,从而给我们对于场景的亮度完全掌控,这就是之前说的色调变换,也是HDR渲染的最终步骤。被提取的带有亮度的图片接着被模糊,结果被添加到HDR场景上面。

2023-10-25 15:36:33 65

原创 Linux文件-内存映射mmap

mmap定义为:Linux通过将一个虚拟内存区域与一个磁盘上的对象(object)关联起来,以初始化这个虚拟内存区域的内容,这个过程称为内存映射(memory mapping)。函数原型:void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);munmap 函数:同 malloc 函数申请内存空间类似的,mmap 建立的映射区在使用结束后也应调用类似 free 的函数来释放。使用时,直接传递 NULL。

2023-10-11 16:14:04 188

转载 基于 HardwareBuffer 实现 Android 多进程渲染

提到多进程渲染,通常会想到 Chrome 浏览器的多进程架构,其每个页面 tab、插件都是运行在独立进程,并且有一个单独的 GPU 进程,这里最明显的好处是可以隔离各模块之间的耦合,即使某个进程卡顿、crash 也不会影响到其它进程,从而提升系统整体的稳定性,特别是 GPU 进程,各厂商提供的图形驱动可能有不同的兼容性问题(参考:Chromium 的 GPU 兼容方案),采用独立进程能有效降低主进程 crash 概率。

2023-09-27 10:09:43 349

原创 视锥体裁剪射线的算法

要满足条件2的话需要对射线进行裁剪,只绘制射线在视锥体内的部分,因此需要计算射线被视锥体裁剪后新的起点和终点。

2023-09-12 17:27:42 239

原创 OpenGL调试时输出显存帧到图片的一些方法

【代码】OpenGL调试时输出显存帧到图片的一些方法。

2023-08-22 10:50:57 191

原创 OpenGL 模板测试

工程场景:安卓系统下的surfaceview的绘制实际是在Window上挖出一块透明区域,然后先绘制surfaceview再把宿主窗口覆盖上去形成的,因此在接手surfaceFlinger的窗口合成上屏工作后要完成surfaceview和挖好孔的宿主窗口的合并渲染,实际宿主窗口在surfaceFlinger进程之前已经完成了透明区域的挖孔处理,直接合成即可,本文介绍假如宿主窗口在surfaceFlinger之前未做好挖孔时,使用模板测试来处理挖孔并做最终合成渲染的一种方法,主要还是巩固下模板测试的使用。

2023-08-21 10:30:14 78

原创 空间向量及值插值相关函数

quatf::fromDirectedRotation为求两向量间的旋转的四元数,见Filament源码。

2023-08-03 00:05:15 108

原创 3维空间精简动画类

该动画类支持在两个转换Transform(平移、旋转、缩放)之间均匀和渐进的过度转换,支持随时倒放动画,动画结束回调等。

2023-08-02 23:51:11 65

原创 3维空间下按平面和圆柱面上排版设计

AR空间中将若干平面窗口排列在指定平面或圆柱体面上。

2023-08-02 23:31:53 588

原创 安卓下模拟渲染EGLImageKHR

【代码】安卓下模拟渲染EGLImageKHR。

2023-08-02 22:38:42 431

原创 EasyX测试布局代码

【代码】EasyX测试布局代码。

2023-07-16 15:08:49 155

原创 渲染通用屏幕坐标转为世界坐标

【代码】通用屏幕坐标转为世界坐标。

2023-07-04 22:59:56 127

原创 android studio 升级后异常: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup

Android studio版本:Android Studio Flamingo | 2022.2.1 Patch 1。报错:Unsupported Java.默认的jdk版本:17.0.6。解决:降低jdk版本为11。

2023-05-26 10:00:50 714

原创 模型绕着摄像机旋转

场景:1.摄像机位置不变,可绕x,y轴任意旋转2.模型不能超出摄像机视野,超出则拉回到视野边缘。

2023-05-18 23:55:17 71

原创 Filament渲染引擎编译

【代码】Filament渲染引擎编译。

2023-05-18 23:47:55 90

原创 ssh连接Ubuntu20.04虚拟机失败的问题

【代码】ssh连接Ubuntu20.04虚拟机失败的问题。

2023-05-03 17:53:56 213

原创 Windows powershell添加自定义快捷指令(Linux下对比)

编辑C:\Users\hongyang.jia\Documents\PowerShell\Microsoft.PowerShell_profile.ps1。1.创建并修改Windows Powershell 启动执行文件。function 别名 { 需要替代的命令 }2.按照以下格式输入命令。例如我的Git简写命令。

2023-05-03 17:44:58 414

原创 Windows-右键通过scp复制文件(自动输入密码)

然后就可以右键拷贝到远程机器了。

2023-04-12 15:07:28 1073

原创 TortoiseGitPlink提示输入密码解决方法

TortoiseGitPlink提示输入密码解决方法

2023-03-07 22:10:43 1037

原创 Windows使用QEMU搭建arm64 Linux环境

qemu-img 支持非常多种的文件格式,可以通过 qemu-img -h 查看. 其中 raw 和 qcow2 是比较常用的两种, raw 是 qemu-img 命令默认的,qcow2 是 qemu 目前推荐的镜像格式,是功能最多的格式。注意修改里面几个文件(2020-02-13-raspbian-buster.img,versatile-pb-buster.dtb ,kernel-qemu-5.4.51-buster )的路径为自己机器实际路径,-f 选项用于指定镜像的格式,10G是镜像文件最大值。

2023-03-04 08:07:42 2564 1

原创 python输出csv 格式和pptx格式数据

【代码】python输出csv 格式和pptx格式数据。

2023-03-02 14:40:00 168

原创 WSL -- 在 Windows 上运行 Linux

WSL -- 在 Windows 上运行 Linux

2023-02-24 17:04:42 1257

原创 树莓派系统安装,网络配置,系统配置

树莓派系统安装,网络配置,系统配置

2023-01-11 13:18:52 1341

原创 vs2017调试内存中的图片数据

设置:@mem(buff,UINT8, 4, _width,_height, _width*4)打开vs2017 视图->其他窗口->Image Watch。然后在获取到这三个要素的后面打个断点。图片实际高度:_height。图片实际宽度:_width。像素数据地址:buff。

2022-09-06 10:47:33 374

原创 android opengles 绑定顶点数据的几种方式

分别有三段数据,分三批填充到GPU缓存。

2022-08-16 11:22:40 213

原创 cmake强制.c文件用c++编译

今天在项目中用cmake编译混合.c的工程和c++的工程,遇到在.c文件中include cpp的文件的话会找不到c++ 的stl里面的一些头文件,记录下。

2022-08-14 22:40:05 790

原创 android opengles从帧缓存高效拷贝数据

代码】android opengles从帧缓存高效拷贝数据。

2022-08-03 15:51:31 994

原创 vs 插件下载慢的解决方法

通过站长工具http//tool.chinaz.com/dns查询download.visualstudio.microsoft.com域名TTL值最小的IP地址。1.host文件位置C\Windows\System32\drivers\etc。3.打开cmd命令行窗口使用ipconfig/flushdns命令刷新DNS。在最后一行加上这个IP地址和域名。2.DNS设置为1.1.1.1。4.还不行把IPV6禁用了。...

2022-07-20 15:04:48 592

转载 基于OpenGL实现PS部分混合模式

为了让不同色彩的图片叠加后能够实现更多种色彩组合,从而渲染出各式各样的画面,PS 提供了各式各样规则的混合模式(这里就不具体一一介绍了,提供一个传送门,有兴趣的可自行了解:https://zhuanlan.zhihu.com/p/94081709)我们知道,我们在使用 OpenGL 进行图片效果开发时,将两张图片叠加,如果上层的图片是半透明的,如果我们想在不改变原图色彩的情况下透过上层图片看到底图,有两种实现方法,第一是使用opengl中为我们提供的混合模式的接口glBlendFunc(),第二是我们再片段

2022-06-09 15:04:45 379

N*N矩阵到达对角顶点寻找最大和值的路线Qt实现源码.rar

笔试题-N*N矩阵到达对角顶点寻找最大和值的路线(Qt实现) 有n*n个格子,每个格子里有正数或者0,从最左上角往最右下角走,只能向下和向右,从A点走到B点,把所有经过的格子的数加起来,求最大值SUM

2020-10-10

C语言实现的手机控制电脑简单源码doc

一段刚写的手机控制电脑源码,希望对读者有帮助! 有什么建议或问题可以联系作者QQ 分两部分:手机端和电脑端 ↓ ↓ ↓ ↓

2018-01-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除