- 博客(8)
- 收藏
- 关注
原创 openGL颜色格式问题记录
openGL颜色格式问题记录颜色格式问题下面这张图片是截取于OpenGL的纹理采取那部分的代码,注意图片的格式为jpg,然后读取图片的格式为RGB但是下面这张截图中,我需要加载的图片数据的格式是png,是4通道的(调试时可以从nrChannels参数看出),所以正确的方法如下:如果格式没有注意的话,就会出现读取的数据不正确的情况RenderDoc问题使用renderDoc调试程序时,程序中涉及到的一些相对路径,可能读取不到,导致无法正常运行程序,因此需要改成绝对路径,如下:这样也可以正
2021-08-31 20:47:41
302
原创 Metal渲染到纹理(类比FBO)
1.渲染到纹理滤镜链Metal - 5 滤镜链(渲染到纹理)Metal的标准坐标系NDC、帧缓存坐标系FrameBuffer Coordinate (也叫Viewport Coorninate)以及纹理坐标系(Texture Coordinate)的原点不一致,还会分别对他们进行介绍和解析。在Metal中要渲染到纹理有如下步骤:1.创建空纹理+ (nullable id<MTLTexture>)createEmptyTexture: (id<MTLDevice>)de
2021-08-30 11:33:12
596
原创 Metal
Metal学习笔记网上资源的简单整合,非原创[译]Metal 渲染管线教程这个资料很好,介绍得很全面。初始化首先需要建立Metal环境。Metal相比OpenGL的巨大优势就是,你可以预先实例化一些对象,而不必每帧都创建一次。下面的图表列出来你可以在app一开始就创建的对象。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ktqnPoDr-1629890257816)(https://raw.githubusercontent.com/nashpan/image
2021-08-25 19:19:36
685
原创 AVPlayer 输出纹理为YUV 和RGB
AVPlayer 输出纹理为YUV 和RGB写这边博客,是因为我在使用OpenGL ES渲染从视频获取的纹理时(使用YUV的方式),出现了颜色偏差的问题,但是我仔细看了我的代码,采样坐标,参数设置等都没有问题,然后我也学习了别人的相关代码,发现使用的方式都是一样的,因此被这个问题卡主了,于是只好换一种方式了,因此借鉴了下面这篇文章的设置方法,将视频输出数据直接设置为RGB,解决了颜色偏差的问题AVPlayer初体验之视频解纹理1.YUV纹理由于视频的编码格式基本都是YUV420,然后苹果的dem
2021-06-28 10:57:24
492
原创 Metal 中加载MTLLibrary
Metal 中加载MTLLibrary一般情形下,我们加载MTLLibrary会使用如下代码:id<MTLLibrary> defaultLibrary = [self.mtkView.device newDefaultLibrary]确实这样是正确的,没有问题的,但是如果我们是开发一个静态库,.Metal 文件放置在你的静态库工程文件中,在测试时使用上面的函数就会找不到这个Metal文件,当然,你把Metal文件复制到你的开发工程中,可以正常运行,但是这样的话,Metal文件就暴露出来
2021-06-28 10:33:45
589
原创 Objective-C 中的协议和委托
Objective-C 中的协议和委托 刚开始学习OC的时候,会接触到协议和委托的概念,刚开始学习理论的时候呢,感觉这两个概念很好理解:协议的话就是类似于java中的接口,类比于C++中抽象类嘛,这有啥;委托的话按照字面意思不就是说我要干一件事,但是我不想自己干,于是找了另外一个人代替我去干嘛,又没啥难的。其实这样理解确实没错,但是由于这是纸上谈兵,面对实际项目中的一堆delegate,把我给整迷糊了,哈哈,还是代码写得太少了,talk is cheap, show me the code !
2021-06-19 01:10:41
189
原创 《编程精粹 - Microsoft编写优质无错C程序秘诀》第3,4章笔记
文章目录第三章 为子系统设防1.若隐若现,时有时无2.冲掉无用的信息3.如果某件事甚少发生的话,设法使其经常发生4.其它方面第四章 对程序进行逐条跟踪1.代码中的分支2.**当对代码进行逐条跟踪时,要密切注视数据流**3.源级调试程序可能会隐瞒执行的细节 对关键部分的代码要进行汇编指令级的逐条跟踪第三章 为子系统设防 一个实际的工程往往是有许多的模块组成的,既对应于作者这里说的子系统;比如文件操作相关的文件管理子系统,涉及到文件的打开、关闭、读写和创建。又如内存管理的模块,涉及到内存分配和释放等
2021-03-06 15:55:55
360
原创 《编程精粹 - Microsoft编写优质无错C程序秘诀》笔记一、二章
文章目录1.假想的编译程序1.1 代码边界问题1.2 其它无意的赋值增强原型的能力2.自己设计并使用断言2.1 **既要维护程序的交付版本,又要维护程序的调试版本**2.2 利用断言进行补救2.3 “无定义”意味着“要避开”2.4 利用断言来检查不可能发生的情况2.5 防错性程序设计1.假想的编译程序1.1 代码边界问题有时程序编译能够正确通过,代码也不存在语法问题,但是出现了与预期结果不符的问题,可能是定义的边界出现了问题如程序中有“差1”错误while (i <= j) // o
2021-03-05 21:33:55
479
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人