- 博客(70)
- 收藏
- 关注
原创 Metal 笔记
3 片段shader,片段shader给你输入的点:in.position,xy的范围是[0,渲染目标的宽高],比如渲染到1024*1024的纹理,xy范围就是[0,1024]2 顶点shader,你输出的顶点(projMatrix*modelviewMatrix*pos) 范围:xy是[-1,1],z是[0,1]就是指定shader,开启混合,深度测试,如渲染目标的像素格式,深度buffer的像素格式。//设置mesh的顶点数据,可以通过buffer来指定,这样才效率高。desp.xxxx 设置。
2024-05-15 12:24:52
422
原创 msys2的使用
msys2的作用:写给linux上跑的程序 可以用msys2编译为exe或者dll,用在windows上跑。1安装,下载msys2,然后安装,安装完后: 1 pacman -Syu 2pacman -Su pacman -Sy 更新软件包数据 pacman -Syu 更新所有 pacman -...
2019-02-27 16:10:39
2983
原创 ffmpeg 音频视频 使用过程中碰到的问题记录
1 音频packet解码为frame之后,音频数据的大小: pframe->data[0],为数据地址,数据的大小应该使用函数av_samples_get_buffer_size( NULL, av_frame_get_channels( pFrame ), pFrame->nb_samples, ( AVSampleFormat )pFrame->format...
2016-08-16 11:04:59
3120
原创 android ndk 使用第三方静态库
1 将第三方静态库的头文件,.a文件拷贝到Android ndk的source目录里面:这个目录里面,Android目录里面放了.a静态库,boost里面放了头文件,android.mk文件的内容:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:= boost_threadLOCAL_SRC_FI
2015-10-02 12:55:49
2498
原创 ffmpeg 录音 利用avdevice
可以直接使用ffmpeg录音,参考代码如下: AVFormatContext *pFormatCtx; AVCodecContext *pCodecCtx; AVCodec *pCodec; AVStream* in_stream; AVPacket pkt; av_re
2015-09-28 16:00:08
3128
3
原创 ffmpeg 接收解码rtp h264视频流
首先说明一下nalu的格式: nalu由三个部分组成:开始码(0x01000000)+nalu头+nalu数据。使用live555 testrtspclient那个例子来接收rtp流,接收到的nalu是没有开始码的,需要自己加上起始码,然后喂个ffmepg的packet.data,然后就可以解码了,将sps,pps补偿给ffmepg: 在ffmpeg
2015-09-25 15:58:11
8873
转载 从dll得到lib文件
来自:http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with-visual-studio/工具:VS2010, VLC的libvlc.dll1. 打开工具 Visual Studio Tools command promopt (Start -> All Programs-> Microsoft Vis
2015-08-24 18:12:44
1492
原创 vc 输出到调试器
#include #include void OutputDebugPrintf(const char * strOutputString,...){ char strBuffer[4096]={0}; va_list vlArgs; va_start(vlArgs,strOutputString); _vsnprintf(strBuffer
2015-08-08 09:51:09
893
转载 Android tweened动画
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 下面就讲一下Tweene Animations。 主要类: Animation 动画AlphaAnimation 渐变透明度RotateAni
2014-06-03 11:38:38
696
转载 unity在定制的shader里面如何添加阴影
For the sake of anyone else who is trying to write a fragment shader that receives shadows, I figured it out.You must do these things:'#include "AutoLight.cginc"''#include "Lighting.cginc"'Add
2014-05-22 21:30:37
11062
原创 3dsmax一般性使用总结
画线的时候开捕捉: 可以捕捉网格点,捕捉顶点等等。 就是工具条上那个磁铁的图标,就是捕捉,左键单击开启,右键设置捕捉参数。2维转3维: 把线条变为可编辑样条线:在修改器--样条线编辑--可编辑样条线 编辑样条线--附加命令:使多个样条线成为一个整体,再挤出就有镂空效果 把其中一个物体转为可编辑网格--
2014-05-16 07:55:30
1940
原创 3dsmax给模型贴图方法总结
3dsmax2012非常好用,在贴图方面.1 把物体转换为可编辑多边形2 给物体一个uvw贴图修改器,根据物体的形状选择一个贴图方式 展开这个uvw贴图,进入到里面一个层级,可以平移,旋转,缩放贴图坐标。3 给物体一个uvw展开修改器,调整贴图的坐标就是在这里进行的, 在编辑uv那里打开uv编辑器, 选择面层级,选取
2014-05-16 07:54:12
15997
原创 photoshop使用总结-高度浓缩
常用快捷键: 取消选区 ctrl+d 反选选区 shift+f7 图像缩放 ctrl+(+,-) 自由变换工具 ctrl+T 给图像反色 ctrl+I 调整图像色阶 ctrl+L 空格键 抓手工具 alt+delete键 用前景色填充
2014-05-16 07:44:30
1064
转载 unity在编辑器中静态生成cubemap的六张纹理
脚本名必须为:SkyBoxGenerator.js,否则报错使用方法:脚本必须放置在项目文件中名为“Editor”的文件夹;该脚本写好保存之后,unity编辑的菜单上会出现一个名为“Custom/Render Skybox”菜单。当选定会弹出一个对话框,设置一个渲染位置然后点击“Render”,并等待几秒钟,刷新项目窗口,生成的6张图片将出现在名为“Skyboxes”的文件夹。警告,每次运
2014-05-15 18:17:21
4732
转载 android 发邮件带附件的最简单方式
项目中遇到了一个发送邮件的功能,在网上查了很多,资料也很多。这里就不一一介绍了,只是写出我使用的方案(最简单的)[java] view plaincopy"font-size:18px;">Intent email = new Intent(android.content.Intent.ACTION_SEND); //邮件发送类型:无附件,纯文本 email
2014-05-15 16:43:44
4379
原创 linux c编程小结
gcc的用法小结: gcc test.c -o test一步到位编译直接生产可执行文件,有多个源文件的话,直接列出来即可。 gcc test.o -o test链接目标文件生成可执行文件,可列多个目标文件 gcc -c text.c 编译生成目标文件 gcc -g text.c生成带调试信息的可执行文件,用于gd...
2014-05-12 23:40:23
706
原创 android http UrlEncode 中文乱码等问题
BufferedReader in = null; try { HttpClient client = new DefaultHttpClient(); HttpPost request = new HttpPost( "http://183.62.35.107:40
2014-04-11 16:20:06
6689
转载 android activity生命周期的透彻理解
说来惭愧,虽然已经做了一年多的android开发,但是最近被人问起activity的生命周期的时候,却感觉自己并不能很自信很确定的回答对方的问题,对activity的生命周期的理解还不透彻啊。 既然发现了问题,那咱就得解决问题,不就个生命周期,能有多复杂。 首先看看android developers 网上的activity的生命周期图: activi
2014-04-04 22:20:34
921
转载 android json解析
本文转自http://www.open-open.com/lib/view/open1326376799874.htmlJSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具
2014-04-03 13:41:55
497
转载 android布局属性详解
RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 and
2014-04-02 10:49:42
618
原创 android AsyncTask 可以更新界面的后台任务
先看使用这个类 在主线程中执行下面这两个步骤即可 diTask = new DownloadImageTask(this); diTask.execute(url); DownloadImageTask是AsyncTask的子类。 execute(url)函数的参数类型是AsyncTask模板类第一个参数类型。需要自己继承Asy
2014-03-31 16:19:52
1141
原创 android 创建后台运行的服务程序
在Activity里面开启和关闭后台服务 startService(new Intent(this, MyService.class)); stopService(new Intent(this, MyService.class));在manifest的application里面声明服务 service android:enabled="true" and
2014-03-30 20:06:17
2945
原创 android 获取屏幕尺寸,设置屏幕方向
在activity的某个函数中:获得屏幕尺寸 Display mDisplay = getWindowManager().getDefaultDisplay(); int W = mDisplay.getWidth(); int H = mDisplay.getHeight(); 或者: DisplayMetrics
2014-03-30 18:43:50
977
原创 android中操作图片
显示图片 一般是通过ImageView来显示图片, mImageView.setImageDrawable(getResources(). getDrawable(R.drawable.baby)); mImageView.setImageBitmap(bm);android操作图片的内容是通过Bitmap这个类来做的,比如得到图片的宽高等等。通过
2014-03-30 17:55:44
1189
原创 android中的菜单
1 option 菜单2 context菜单 环境菜单的创建,是activity的工作,有个可重写的函数可以监听环境菜单项被选中事件: public boolean onContextItemSelected(MenuItem item) { return super.onContextItemSelected(item);
2014-03-30 17:39:53
643
原创 android中的CheckedTextView
checkedTextView = (CheckedTextView)findViewById(R.id.checkedTextView1); //设置checkedTextView为选中状态 checkedTextView.setChecked(true); //设置checkedTextView的页边距,即距上/下/左/右各20像素,默认
2014-03-30 16:17:00
15765
原创 android的ListView
其实ListView也相当于一个容器,可以在layout里面设计,可以往里面添加一些CheckedTextView//创建ListView myListView = new ListView(this); //这里面的this是指Activity myListView.setBackgroundColor(getResources().getColor(R.drawa
2014-03-30 16:13:36
694
原创 android布局和布局参数
android线性布局: myLinearLayout = new LinearLayout(this); myLinearLayout.setOrientation(LinearLayout.VERTICAL); myLinearLayout.setBackgroundColor(android.graphics.Color.WHITE);
2014-03-30 15:30:28
1591
原创 OpenGLes2.0 什么是Pbuffer
pbuffer跟framebuffer功能是一样的,都是用来做渲染到一个off-screen surface上的,但是如果要做的是渲染到一个纹理上,还是使用framebuffer,效率高些。pbuffer的用途是:渲染到纹理上,随后这个纹理可以给其他API用的,比如openVG。创建pbuffer的过程跟创建窗口surface差不多的: EGLSurfac
2013-12-13 16:44:26
5233
原创 opengles2.0 帧缓存对象(FBO)
帧缓存对象(fbo)主要是用于做渲染到纹理。opengles2.0渲染到纹理的方法有三种: 第一,使用glCopyTexImage2D或者glCopyTexSubImage2D,这两个函数,复制framebuffer中的 像素到纹理缓存里面,但这两个函数性能比较低下,并且要求纹理的尺寸必须小于等于 framebuffer的尺寸。
2013-12-13 16:26:03
15254
原创 opengles2.0 片段shader之后的操作 备忘
各种测试的顺序: 剪刀测试-模板测试-深度测试-混合-抖动opengles支持三种帧缓存,颜色,深度,模板缓存。 颜色缓存一个有16位的RGB565和32位的RGBA,颜色缓存有前后缓存 模板缓存是可选的,要么集成在深度缓存里面 深度缓存至少16为,至少8为被模板缓存。 缓存的clear: void glClear(G
2013-12-12 17:33:59
3341
原创 opengles2.0 shader备忘
opengles 支持二进制shader,是为了节省在线编译的时间,但是二进制shader的移植性不好,各个厂商有自己的二进制格式。有的显卡支持在线编译,可能有的显卡只支持二进制格式的shader,检测显卡是否支持在线编译调用函数glGetBooleanv(GL_SHADER_COMPILER),如果支持在线编译shader就可以使用函数glShaderSource来指定shader在
2013-12-12 17:27:10
6938
原创 Log算子
LOG算子,也就是Laplacian-Gauss算子。它把的Gauss平滑滤波器和Laplacian锐化滤波器结合了起来,先平滑掉噪声,再进行边缘检测,常用的5x5模板:-2 -4-4 -4 -2-4 08 0 -4-4 824 9 -4-4 08 0 -4-2 -4-4 -4 -2
2013-08-20 16:34:55
3211
1
原创 又遇到debug和release版本表现不同的奇葩问题
vs2008件了个win32 C++工程,这个工程用到了一个使用c语言写的静态库,这个静态库是用vc6.0写的,刚开始是这样来做的:忽略libc.lib库,然后自己定义一个extern "C" { FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]}; }
2013-08-02 15:57:26
1492
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人