自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 解决conda active命令报错

打开miniconda3/Scriptes/conda-script.py文件添加DLL搜索路径。

2023-11-05 03:50:23 264

原创 luajit 使用 clang编译的坑

由于官方提供的编译脚本仅有MakeFile,所以暂时只能跨平台编译,在Windows Subsystem Linux中操作。因为新版NDK使用clang作为编译器,而MakeFile里面的一些路径处理还是比较旧,在路径拼接上存在一些问题,需要修改。主要是移动平台,涉及跨平台编译,因为对跨平台编译具体细节没有系统研究,这里先记录一下跨平台编译LuaJIT的主要过程。为了尝试将LuaJIT接入虚幻Lua插件之中,需要预编译LuaJIT链接库,在桌面平台问题不大,

2023-08-04 11:56:51 855

原创 ogre-next吃鸡笔记

本人使用的版本是ogre-next2.3一、修复OgreSTBICodec.cpp 中decode()函数解码24位图片的bug 修复如下:Codec::DecodeResult STBIImageCodec::decode(DataStreamPtr& input) const { // Buffer stream into memory (TODO: override IO functions instead?) .........

2022-02-16 17:43:48 810

原创 升级ogre1.13.0吃鸡版, win中文路径读取错误解决

在使用之前版本ogre的时候win平台是可以直接读取da_OGRE_FILESYSTEM_ARCHIVE_UNICODE

2021-05-31 09:30:29 241

原创 Ogre在 iOS上创建 es3.0 的 glContext

使用es3.0 可以支持ETC2格式的压缩纹理.修改方法如下:1、 找到工程生成目录下的include文件夹,即OgreBuildSettings.h所在的文件夹。找到 OgreGLES2Config.h 修改该文件中的宏 #define OGRE_NO_GLES3_SUPPORT 02、兼容低端机,如果不支持es3.0的设备,可以让其尝试创建es2.0找到 CCES2Render-ios.m文件修改下面这个函数如下// Create an OpenGL ES ...

2021-05-21 12:02:39 206

原创 cocos2d-x的坑之 setUniformTexture(textureName, _TextureID);

记录一下,这个函数有坑。 cocos2dx为了兼容移动平台,限制默认最大纹理单元是16 。而且一般情况下内置了4个纹理单元的 uniform 变量 CC_Texture0 CC_Texture1 CC_Texture3 CC_Texture4, 我们可以不用定义直接使用。在我的一个片段shader中可能需要用到16个纹理单元。 因此自定义了 texture0、 texture1 ... texture15所以我打算不使用内置的CC_Texture0 ... 等几个变量然后需要为...

2021-01-16 18:05:51 563

原创 lua不同虚拟机共享table的实现2 - 通过自定义c对象共享

//// main.cpp// lua//// Created by ycmac on 2020/12/14.// Copyright © 2020 ycmac. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <thread>#include <vector>#include <l.

2020-12-31 14:48:29 294

原创 lua不同虚拟机共享table的实现

为何要在多个lua虚拟机间共享table呢, 因为lua是不支持真正的多线程的,Lua中的协程其实也是在单线程中运行的。所以为了发挥cpu的最大性能,我们需要通过多线程异步执行一些任务。这些任务线程是不会阻塞lua虚拟机线程的执行。当异步线程执行完成之后就需要把数据或者消息传递给主线程lua虚拟机。 当然数据的传递有很多种方式,比较常见的就是直接传递一个c++的对象或者 以字符串char*传递一块内存。 但是由于c++对象的数据无法在lua中直接使用所以往往接收后还需要额外的解......

2020-12-23 21:03:09 1844

原创 cocos2dx4.0编译ios笔记

下载官网cocos2dx-4.0压缩包解压, 在根目录创建xcode_build_ios文件夹。 打开cmake工具选择cocos2dx根目录和刚才创建的目录。 点击config,选择 xcode, 注意不要点确定,下面有4个选项,选择 Specify options for cross-compiling 点 Continue, 在 Operating System 填iOS其他都不管,点done ,然后点生成 就ok了, 接着用xcode打开刚才生成的项目...

2020-12-04 16:18:42 805

原创 cocos2dx实现不同图片材质精灵渲染批次合并

一、 实现技术原理 多重纹理、 顶点合并 二、适用场景。 有大量的精灵,位于同一个图集或者不同图集,最多8张不同的图集(目前只是用了8重纹理)。可以执行帧动画,但是帧动画的所有帧必须在同一个图集上。并且所有执行该帧动画的精灵动画完全同步,即必须整齐划一的步伐,比如军队士兵。不同步其实也可以实现,但是由于不能共用同一个精灵的uv,所以需要所有精灵都执行一个动画来更新,会带来额外的动作更新开销。暂时我们项目中要求一致就可以了,因此未实现。三、技术细节1...

2020-11-18 20:31:50 1402 3

原创 cocos2dx矩阵坐标计算的坑用transformPoint 而不是 transformVector

今天在重载Sprite 的 OnDraw()函数中 计算顶点坐标, 获取精灵的模型矩阵 乘以 quad 的顶点结果坐标没发生任何改变, 原来是使用了Mat4的transformVector 方法, 然后又发现Mat4的矩阵有重载 Vec3的 *= 运算符,又用该运算符计算结果还是没有任何改变, 有点怀疑人生了。 后来又搜索Mat4中所有和Vec3相关的函数,发现还有个transformPoint 方法。 试了一下居然成功了, 真坑啊, 仔细对比了一下和另外两个函数的区别, 原来transf...

2020-11-16 16:20:48 729

原创 cocos2dx客户端添加使用vscode及插件local lua debug进行调试

1.安装vscode local lua debug插件2.修改mac/SimulatorApp.mm文件updateProjectFromCommandLineArgs:(ProjectConfig*)config 函数将 config->setShowConsole(true); 中的true改为false,就是关闭控制台窗口,否则调试插件不生效3.添加或修改.vscode/launch.json 代码如下,根据实际路径适当修改{ // Use IntelliSe...

2020-10-19 11:48:01 1191

原创 vscode 使用 local lua debugger 调试lua代码

mac 下 需要手动加入 插件所在目录package.path = '/Users/ycmac/.vscode/extensions/tomblind.local-lua-debugger-vscode-0.2.0/debugger;' .. package.pathrequire("lldebugger").start()另外:如果程序运行后动态添加断点不生效, 则需要预先添加断点, 并且在命中一个断点的中断情况下添加断点才能生效优化:当程序代码较大,启动较慢的时候,不要在一开始就打开调试

2020-10-16 17:57:04 805

转载 使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果

使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果原文http://www.cppblog.com/mybios/archive/2009/08/01/91869.html使用FreeType实现矢量字体的粗体、斜体、描边、阴影效果前言:Freetype是一个跨平台、开源的字体渲染器,网上很多文章介绍,本人就不啰嗦了。本文重点在于实现文章标题所属的各种效果,不是Fre...

2019-06-04 10:04:13 1376

转载 通过freetype库实现矢量显示

通过freetype库实现矢量显示本章主要内容如下:1)矢量字体原理 2)使用freetype库实现矢量字体显示1. 矢量字体原理 将汉字的笔划边缘用直线段描述成封闭的曲线,并将线段各端点的坐标经压缩存储,如下图所示:由于每个汉字的笔划不一样,从而每个...

2019-06-03 10:49:43 1473

原创 OpenAL Android版编译笔记

下载openal-soft-master.zip 解压后在 解压文件夹创建build目录, 打开VS2010命令行提示工具,cd 切换到刚才创建的build目录, 输入如下cmake命令: cmake -G"NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=D:\develope\Android\android-ndk-r17c...

2019-05-14 04:37:28 677

翻译 Mac下编译OpenH264 for android

简介OpenH264 是思科的开源项目,可以编码解码H264,常见的H264编码器还有x264项目。由于OpenH264项目的文档较少,初学的门槛较高,所以整理一些文章来帮忙初学者入门。OpenH264系列文章包括:编译OpenH264 for Windows编译OpenH264 for Android编译OpenH264 for iOS编译OpenH264 for Windows P...

2019-05-13 12:52:23 359

翻译 Android独立工具链 Androlua NDK 开发之路

您可以独立使用 Android NDK 附带的工具链,或将其作为插件与现有 IDE 结合使用。 如果您已有自己的构建系统,且仅需要调用交叉编译器功能以将对构建系统的支持添加到 Android,则这种灵活性非常有用。一个典型用例是在CC环境变量中调用一个需要交叉编译器的开源库的 configure 脚本。注:本页假设您非常了解编译、链接和低级架构。 此外,对于大多数用例来说本页介绍...

2019-05-12 22:38:38 628

原创 Ogre_v1.12.0 最新github版升级总结

Ogre_v1.12.0版中将 图片解码器完全单独抽离出来,仅内置DDS和ETC两种图片解码的支持,不再依赖庞大的FreeImage图片解码库,这意味着更新的核心。编译成dll仅3M多,相比以前8M左右的包体,大大缩小了程序文件,在Android上编译成apk(压缩3M的so)只有接近2M的大小, 同样如果要支持png jpg bmp等多种图片格式,需要以插件的形式加载 Codec_STBI 插...

2019-02-16 11:44:46 218

转载 欧拉交 四元数 旋转矩阵转换

#include &lt;iostream&gt;#include &lt;Eigen/Eigen&gt;#include &lt;stdlib.h&gt;#include &lt;Eigen/Geometry&gt;#include &lt;Eigen/Core&gt;#include &lt;vector&gt;#include &lt;math.h&gt; using nam

2018-10-27 16:22:58 692

转载 vs2013 MFC 添加图片出现的问题 总结:

1.添加bmp文件,可能找不到bmp位图,只显示icon图片,此时需要选择“所有文件”,再导入。(vs2013的一个bug,vs2012不存在)另一种方法是在“画图”中全选位图,复制到vs端新建位图中,但分辨率不高。注:图片控件属性设置 Center Image True,才能改变控件大小2.关键问题:载入bmp后,运行时报错:error RC2108: expected numerical di...

2018-07-15 11:51:27 3004 2

转载 解决curl 静态链接时 提示无法解析的外部符号 __imp__curl_easy_init

无法解析的外部符号 __imp__curl_easy_init下载libcurl的源码,打开lib文件夹下项目,编译为静态链接库。在编译的时候出现问题如下:注:以前在vc2005下用mfc工程并且libcurl用的dll方式没问题,这次vc2008用的sdk并且libcurl用的静态编译,也不知道什么问题引起的HttpWebRequest.obj : error LNK2001: 无法解析的外部符...

2018-06-27 15:28:42 12763 8

原创 场景划分区域

 为何要对场景进行区域划分,这个同样是为了优化碰撞检测。因为相对于其他逻辑而言碰撞检测尤其消耗性能,尤其是对网格类的碰撞体进行碰撞检测时性能开销更大。试想一下场景中有1000个物体 如果没有区域划分的情况,物体两两碰撞检测的次数是 1000 * 1000次,而如果游戏帧率达到60,那么这个碰撞检测逻辑就达到了 1000 * 1000 * 60次,而即时采用优化的机制,因为当一个物体与场景中其他物体...

2018-05-02 11:21:10 1040

转载 Ogre中精确到三角面的碰撞检测(使用射线查询)

201404-04Ogre中精确到三角面的碰撞检测(使用射线查询) Jianchihu 编程之美 围观1238次 留下评论 编辑日期:2015-11-13 字体:大 中 小Ogre中的射线查询一般只能侦测到边界盒(AABB),就像你在下面图片看到的,使用下面的代码就能避免这些。初始化射线查询:12345678// create the ray scene query object    m_pra...

2018-02-17 12:43:27 610

转载 MyGUI 支持OpenGL ES2 或者 GL3+

MyGUI OpenGL ES2aoikonom09-08-2012 12:56:23I am trying to use MyGUI with OgreGLES2RenderSystem in an Ogre3d4Marmalade (an Ogre fork for the Marmalade framework). At first it did not

2018-02-06 16:43:09 424

转载 Ogre角色换装

作者: huliqingEmail: [email protected]原文链接:http://www.huliqing.name/article/articleId=41*******************************************************************************************************

2018-01-20 18:28:53 431

原创 Ogre1.10编译Android版

编译系统为Windows  需要装Visual Studio2010  、CMake、NDK (r9d)  注意cmake版本不要太低也不要太高建议2.8 -3.7之间的版本添加环境变量ANDROID_NDK 到ndk的解压目录解压Dependencies在里面建两个文件夹为AndroidBuild/armeabi-v7a 后面可能会对不同CPU进行多个版本编译所以用了两层

2017-12-31 17:07:50 668

原创 实现资源异步加载构想

为了更加平滑场景的加载,做到真正的0等待,或者将进入场景的等待时间降低到最小,我决定实现一套资源异步加载的机制。由于Ogre的逻辑更新不能在主线程之外。我们和渲染相关的游戏逻辑(比如改变模型的位置)都必须在主线程中进行(也可以在其他线程,不过要和主线程进行同步操作,渲染的时候不能更新)。我们引擎中将所有逻辑都限制在主线程中(自己创建线程的除外),这样可以不用考虑多线程的同步问题,以及函数执行先后的

2017-12-17 16:44:25 562

空空如也

空空如也

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

TA关注的人

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