推荐:将 NSDT场景编辑器 加入你的3D开发工具链

1、构建应用目录

  我们将设置使用 CHAI3D 构建应用程序所需的基本目录结构和文件。根据您可能要使用的显示器或 GUI 库,为 FreeGLUT、.NET 和 Qt 提供了项目模板,可以在 CHAI3D/templates 目录中找到。

  首先,我们首先创建一个名为 application 的空目录,在其中设置所有必要的文件。此目录可以在硬盘驱动器上的任何位置创建。 然后我们创建两个子目录,分别称为 bin 和external。bin 目录将包含应用程序的可执行文件以及与之关联的任何资源文件(例如媒体文件、DLL 等)。外部目录将包含应用程序使用的所有外部库,包括 CHAI3D 框架的副本。

  在新创建的external目录中,放置 CHAI3D 的副本。如果您的应用程序需要其他框架或库,您也可以在那里放置这些文件的副本。

  在 bin 目录中,请创建两个名为 win-Win32 和 win-x64 的子文件夹,您将在其中复制以下可从 CHAI3D/bin/win-Win32 和 CHAI3D/bin/win-x64 目录中可用的 DLL 文件。仅当您计划支持不同的跟踪或触觉设备时,才需要这些 DLL 文件。如果您正在为力维触觉设备开发应用程序,则不需要这些文件。如果您的应用程序包含其他资源文件,例如图像、视频或声音,我们建议您将它们存储在我们在本示例中称为资源的子目录中。

2、创建项目文件

  启动 Microsoft Visual Studio 并通过选择菜单 FILE >新建>项目来创建新的项目文件。

选择空项目,然后单击按钮浏览...以找到新创建的目录应用程序。

为项目定义一个名称。在此示例中,我们将项目命名为:myProject。

项目和解决方案文件现已创建,可以在目录应用程序/myProject 中找到

从“生成”>“配置管理器...”菜单中选择配置管理器...。

默认情况下,仅为 32 位编译 (Win32) 创建设置。我们现在为 64 位平台 (x64) 创建新配置。在将其他项目文件添加到解决方案之前执行此步骤非常重要。

选择 x64 作为新平台,然后单击按钮确定

现在,我们将 CHAI3D 项目添加到应用程序中。选择菜单文件>添加>现有项目。

选择与您的 Microsoft Visual Studio 版本对应的项目文件。 当我们在示例中使用 Visual Studio 2013 时,我们选择项目文件 CHAI3D-VS2013.vcxproj

在此示例中,我们还添加了 FreeGLUT 图形显示框架。 如上一步所示,选择菜单 FILE > 添加>现有项目。

在解决方案资源管理器中,您现在应该看到所有三个项目,即 CHAI3D、freeglut 和 myProject。

使用鼠标右键,单击我的项目并选择选项设置为启动项目。 这将告诉Visual Studio在编译解决方案后运行哪个应用程序。

现在,我们定义项目的项目依赖项。在此示例中,应用程序需要 CHAI3D 和 freeglut。选择菜单“项目”>“项目依赖项”。

使用鼠标, 勾选CHAI3D 和 freeglut。

由于项目仍然是空的,我们创建一个空的主.cpp文件,我们将在其中编写程序。

选择“C 文件(.cpp)”并为其命名为 main.cpp。单击按钮 加入 生成新文件。

新的空文件现已创建,可以接收源代码。

由于您可能希望编译并运行此应用程序,因此我们建议您复制 CHAI3D 提供的示例之一的内容。在本演示中,我们复制了示例 CHAI3D/examples/GLUT/13-primitives 中的代码。如果您希望改用另一个示例,请确保还将任何必要的资源文件复制到 application/bin 目录中。

3、设置项目属性

使用鼠标右键,单击我的项目并选择选项属性。

将显示以下“属性页”窗口。

在修改任何属性之前,我们将配置分配给所有配置,将平台分配给所有平台。这将允许我们同时将属性分配给所有四种可能的模式,分别为:

  • Win32 / Debug

  • Win32 / Release

  • x64 / Debug

  • x64 / release

在“配置属性”/“常规”中,将“输出目录”定义为“../../bin/win-$(platform)\

在“配置属性”/“C/C”/“常规”中,编辑“其他包含目录”

添加以下目录:

  • ../../external/CHAI3D/src

  • ../../external/CHAI3D/external/Eigen

  • ../../external/CHAI3D/external/glew/include

  • ../../external/CHAI3D/extras/freeglut/include

请注意,仅当您使用 FreeGLUT 作为显示库时,才会使用最后一个目录。如果您使用的是其他框架(如 .NET 或 Qt),则可以省略此行并替换为其他引用。

在“配置属性”/“C/C/语言”中,为“启用运行时类型信息”选项选择“是 (/GR)”。

在“配置属性”/“链接器”/“常规”中,编辑“其他库目录”

添加以下目录:

  • ../../external/CHAI3D/lib/$(Configuration)/$(Platform)

  • ../../external/CHAI3D/extras/freeglut/lib/$(Configuration)/$(Platform)

在“配置属性”/“链接器”/“输入”中,编辑“其他依赖项”

添加以下库文件:

  • chai3d.lib

  • freeglut.lib

在“配置属性”/“链接器”/“系统”中,为选项“子系统”选择“控制台(/子系统:控制台)”。

至于最终设置,我们现在为 Win32 和 x64 平台定义了两个不同的预处理器指令。 选择 Win32 平台。

在“配置属性”/“C/C/语言”中,编辑“处理器定义”。

分配以下指令:WIN32。

选择 x64 平台。

在“配置属性”/“C/C/语言”中,编辑“处理器定义”。

分配以下指令:WIN64。

4、编译运行

  为了确保触觉设备的最大性能和稳定性,在未调试代码时始终以发布模式编译和运行应用程序非常重要。如果需要调试代码,请考虑禁用或减少所有触觉力,以避免设备不稳定。

若要生成整个解决方案,请选择菜单“生成”>“生成解决方案

成功编译应用程序后,您可以运行该应用程序。

下面是演示正在运行的应用程序的最终屏幕截图。

了解更多,进入我的博客:3D建模学习工作室

Chai 3D之创建项目的更多相关文章

  1. C#程序员的春天之从零开始学习unity3D游戏开发入门教程二(创建项目及基本面板介绍)

    一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基 ...

  2. maven学习(三)-使用maven来创建项目

    转自https://www.cnblogs.com/xdp-gacl/p/4240930.html maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项 ...

  3. MVC Core 网站开发(Ninesky) 1、创建项目

    又要开一个新项目了!说来惭愧,以前的东西每次都没写完,不是不想写完,主要是我每次看到新技术出来我都想尝试一下,看到.Net Core 手又痒了,开始学MVC Core. MVC Core最吸引我的有三 ...

  4. MVC5 网站开发之二 创建项目

    昨天对项目的思路大致理了一下,今天先把解决方案建立起来.整个解决包含Ninesky.Web.Ninesky.Core,Ninesky.DataLibrary等3个项目.Ninesky.Web是web应 ...

  5. Maven自定义绑定插件目标:创建项目的源码jar

    <build> <plugins> <!-- 自定义绑定,创建项目的源码jar --> <plugin> <groupId>org.apac ...

  6. Vs2012 创建项目失败 未找到与约束ContractName

    刚开始使用vs2012的时候,创建项目失败,后来找到原因 ,是KB2840642V2的原因,于是 卸载之.vs正常

  7. vs创建项目模板和项模板

    原文地址:https://msdn.microsoft.com/zhcn/library/xkh1wxd8(v=vs.140).aspx 如何:创建项目模板 Visual Studio 2015   ...

  8. cocos2d-x创建项目

    2.0之后的创建项目方法 第一步,首先 cd cocos2d-x-2.2.1/tools/project-creator/ 第二步, ./create_project.py -project Hell ...

  9. Django1.3 创建项目

    经历了各种失败各种烦恼以后Django开发环境终于搭建好了! 系统环境:ubuntu12.04    Django版本1.3.1   Python版本 2.7.3 接下来就兴建一个项目练习一下 1.创 ...

  10. thinkphp学习简易教程(一) thinkphp创建项目

    1.在本地服务器根目录下创建项目目录,如命名为app: 2.把thinkphp的压缩包解压到与项目同级目录下,如app是放在目录APP下面,即项目目录路径为'APP/app/',则thinkphp应解 ...

随机推荐

  1. JDK中内嵌JS引擎介绍及使用

    原文: JDK中内嵌JS引擎介绍及使用 - Stars-One的杂货小窝 最近研究阅读这个APP,其主要功能就是通过一个个书源,从而实现移动端阅读的体验 比如说某些在线小说阅读网站,会加上相应的广告, ...

  2. 深入浅出OSI七层参考

    本篇博客是笔者阅读<图解TCP/IP>所记录下的笔记,有兴趣的朋友可以去看一看这本书. OSI七层参考模型 ​ 本小节以电子邮件通信为例,分别来阐述OSI七层模型的每一层是如果进行通信处理 ...

  3. 《HTTP权威指南》– 8.网关、Web机器人

    集成点:网关.隧道及中继 网关 网关(gateway): 资源和应用程序之间的粘合剂.应用程序可以(通过HTTP或其它已定义的接口)请求网关来处理某条请求,网关可以提供一条响应.网关可以向数据库发送查 ...

  4. js 定时器(setInterval)

    js 定时器 分类 编程技术 js 定时器有以下两个方法: setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函数,直到 clearInterval() ...

  5. (已转)Linux基础第七章 线程

    前言 之前讨论了进程,了解一个进程能做一件事情,如果想同时处理多件事情,那么需要多个进程,但是进程间很不方便的一点是,进程间的数据交换似乎没有那么方便.Linux提供线程功能,能在一个进程中,处理多任 ...

  6. [机器学习] Yellowbrick使用笔记3-特征分析可视化

    特征分析可视化工具设计用于在数据空间中可视化实例,以便检测可能影响下游拟合的特征或目标.因为ML操作高维数据集(通常至少35个),可视化工具将重点放在聚合.优化和其他技术上,以提供对数据的概述.这是Y ...

  7. python之路56 dajngo最后一天 csrf跨站请求 auth模块登录注册方法

    csrf跨站请求伪造 钓鱼网站:模仿一个正规的网站 让用户在该网站上做操作 但是操作的结果会影响到用户正常的网站账户 但是其中有一些猫腻 eg:英语四六级考试需要网上先缴费 但是你会发现卡里的钱扣了但 ...

  8. 算法竞赛向 C++ Standard Library 使用速查

    因网络上 STL 教程大多零散且缺乏严谨性,本文对算法竞赛所需 C++ Standard Library 做了一个较为全面的总结. 全文主要参考以下文档: Containers library - c ...

  9. Java基础学习笔记-类的静态属性和静态方法--待继续补充

    程序运行时的内存占用 代码区(code area) 存放代码 数据区(data area) 存放全局数据.静态数据 堆区(heap area) 存放动态申请的数据 栈区(stack area) 存放局 ...

  10. 详解 Gulp4 和 Gulp3 的区别

    最近在开发几个网站,为了优化一下前端代码,就复习一下gulpjs,之前工作gulp用的版本比较老,但是今天看了新的版本,新的语法出了一下,但是为了时间,我决定使用之前gulp3的旧版本,后面发现自己环 ...