Working with FBX SDK (2)
Working with FBX SDK (2)
仅供个人学习使用,请勿转载,勿用于任何商业用途
作者:clayman
上一篇文章介绍了fbx sdk的基本用法,接下来我们继续讨论如何取得normal,tangent,binormal和uv信息。先介绍一些关于KFbxLayer对象的概念。KFbxLayer对象是一个容器,对mesh来说,它包含了除控点,多边形信息以外大部分数据,比如normal,tangent,vertex color,uv等等。一个mesh可以包含多个KFbxLayer对象,不同layer之间的元素类型,个数通常都不相同。下面是一个简单的mesh结构关系:
mesh ---- layer 0 { KFbxLayerElementNormal, KFbxLayerElementTangent, KFbxLayerElementUV&
http://www.cyqdata.cn/cnblogs/article-detail-290
mongodb分片集群(sharding with replica set)配置
一共有4台机器,各自挂接一个存储,希望实现:
尽量节约存储
高可用性
存储大量数据
配置方案:
每一台机器做一个分片的主数据库
每一台机器做一个分片的后备数据库
每一台机器做一个分片的仲裁服务
两个两个一组交叉作对方的后备
有三台机器开配置服务
有一台机器开路由服务(生产环境可以在每一台Windows App服务器上开路由服务,App服务器集群做负载均衡)
这样的话,任何一台服务器完全离线(或者交叉的两台服务器离线),都能保证整个系统正常运行。不过在服务器和服务器起来之后需要:
在升级成为主数据库的那个后备数据库上运行rs.StepDown(100)来让它让出主数据库的位置,因为每一个分片的活动数据库都应该由独立服务器担当,以获得最好的性能
配置服务和后备数据库起来之后不需要做任何调整
192.168.129.142
mkdir -p /usr/data/shar
http://www.cyqdata.cn/cnblogs/article-detail-283
Spring.Net实现AOP以及AOP相关概念(学习笔记四)
Spring的重要应用是在AOP(Aspect- Oriented programming面向方面编程)编程方面。Spring.Net是如何进行AOP的呢?下面是我在学习Spring实现AOP的例子以及我个人的一些浅显的理解,若有不妥之处,还望大侠们指出。
本节重点分如下两部分:
1、Spring实现AOP。
2、AOP相关概念。
先介绍如何实现AOP,然后再通过使用过程中的用法,谈谈我自己对AOP概念的理解。
首先还是介绍一下开发环境以及软件版本:
VS版本:VS2008 SP1、Spring版本:1.3.0。
在我使用Spring.Net实现AOP的例子中有两个部分:1、使用编程方式实现。2、使用配置方式实现。实际在应用中,应用配置实现AOP还是相对更好点。实现AOP除了之前用到的程序集以外,还需使用程序集Spring.AOP。
1、Spring实现AO
http://www.cyqdata.cn/cnblogs/article-detail-277
SharePoint安装后修改计算机名称的问题
安装了SharepointFoundation2010后,完成了配置并开发部署了webpart,由于之前计算机名称一直没有改过,特别长,就顺手修改了一下机器名称,这下问题来了,Sharepoint居然打不开了,一直提示数据库连接错误,很纳闷为什么修改一个机器名会影响到数据库的访问呢?到网上查了一下才找到解决办法,原来是修改机器名的方法不对。 如果想在安装了Sharepoint之后修改计算机名称,一下三步可以解决: (一)在SharePoint3.0管理中心中修改“替代访问映射”: 进入SharePoint管理中心 找到“备用访问映射”链接 修改URL (二):用stsadm命令中的renameserver选项: cmd进入命令行,进入目录:C:\Program Files(x64)\Comm
http://www.cyqdata.cn/cnblogs/article-detail-275
Linux设备模型 (1)
随着计算机的周边外设越来越丰富,设备管理已经成为现代操作系统的一项重要任务,这对于Linux来说也是同样的情况。每次Linux内核新版本的发布,都会伴随着一批设备驱动进入内核。在Linux内核里,驱动程序的代码量占有了相当大的比重。下图是我在网络上搜索到的一幅Linux内核代码量的统计图,对应的内核版本是2.6.29。
我们可以很明显的看到,在Linux内核中驱动程序的比例已经非常高了。
Linux 2.6内核最初为了应付电源管理的需要,提出了一个设备模型来管理所有的设备。在物理上,外设之间是有一种层次关系的,比如把一个U盘插到笔记本上,实际上这个U盘是接在一个USB Hub上,USB Hub又是接在USB 2.0 Host Controller (EHCI)上,最终EHCI又是一个挂在PCI Bus上的设备。这里的一个层次关系是:PCI->EHCI->USB Hub->
http://www.cyqdata.cn/cnblogs/article-detail-261
对不能用using的成对操作,快速扩展IDisposable的方法
日常操作中有很多需要打开/关闭 加锁/解锁的成对操作
有时候一些操作原生支持 IDisposableMonitor 可以用Lock(){} 但是ReadWriteLock 就难了。 还有WCF Channel等)。这种情况就要用 try/catch/finally,很是丑
封装成IDisposable可能很烦,因为多一个对象要多好多文档。
虽然AOP可能解决一些问题, 但是又没办法精确定位 scrope. 还是 IDisposable +using最爽
所以写了一个缺省实现。
/// <summary>
/// 销毁帮手,生成可以支持using的自定义IDisposable实例
/// </summary>
public str
http://www.cyqdata.cn/cnblogs/article-detail-257
Oracle VM VirtualBox上安装windows server2008R2做SharePointServer2010开发(中)
非常遗憾,在我本子上没能装上,在windows更新上出现错误,没有找到原因,猜想是因为没有激活windows,等有时间再将本上的开发环境搞定。 由于公司开发需要,在公司的服务器上做了虚拟机器安装了Server2008R2,和SharepointFoundation2010及VS2010进行开发。 在安装完成Server2008R2后,需要配置一下应用程序配置才能继续安装SharepointFoundation2010,在安装时有几个需要注意的地方, 如果仅仅是在虚拟机上做开发,可以直接独立安装,如果有其他服务器的话,选择服务器场。 看到下面的图就说明安装基本完成了,接下来我们会做一个常用的webpart开发。 我们新建一个网站试试 配置站点 在你创建一个网站之后,如果想在根站点下再建立一个站点,那么创建界面就会是另外的样式 创建完毕后,在跟站点下
http://www.cyqdata.cn/cnblogs/article-detail-243
[VSTO系列]一、Getting Start!
我们的目标:
在这次的系列文章中,我们通过一些小例子,来循序渐进的学习VSTO for excel这个已经出现很久的技术,在平常的使用时,我很少发现比较全面或者具体的文章作介绍,当然,除了MSDN。
在我的博客开始这个系列,一为了巩固自己的相关技术知识,二也是为了和大家一起交流分享自己的技术心得和体会,希望能够获得更多宝贵的经验!
这个系列第一期大致有如下文章:
Getting Start(Add-In级别)
简单的UI设计(Robbin)
批量操作(附带一个qq联系人导出例子,Add-In级别)J
丰富的自定义UI交互(Add-In级别)
部署Add-In组件到客户端
第二期将根据第一期的情况做灵活修改和调整,欢迎大家拍砖!
什么是VSTO:
是啊,什么是VSTO呢,其实很多朋友包括MSDN都给出了很好的定义,在此我就不再罗嗦,请大家通过如下网址进行查阅吧:
引用:
http://www.cyqdata.cn/cnblogs/article-detail-224
灯塔,大海,大风。Final.
终于是把它做完了,吃了不少苦头,走了不少弯路,不过一切都是值得的,也收获了很多。
最终结果虽然也有很多不足,可是它占用的时间和学到的东西还是成正比的,所以也就不纠结了。结果并没有预期的满意,希望以后再做这样的东西的时候能避免一下问题,争取得到最好的效果。
先看视频吧。这个是最终效果,然后是流体的渲染对比,后面重复几遍最终版为了拖延时间得到Youku的HD转码(Youku这点就没有Vimeo好,Vimeo只要是够尺寸了,不管多长都是HD的,真麻烦)。
这个是WIP视频,可以看到几乎所有的中间步骤。
稍微详细说一下制作思路吧。
首先是浪面的制作,这个我用到了一个叫DisplaceD的插件,它可以根据图片,函数和节点来驱动几何体的顶点的位置,具体用法和功能可以去Google一下,我就不细说了。我用Maya的Ocean贴图程序节点控制的浪的形态,大
http://www.cyqdata.cn/cnblogs/article-detail-209
如何使用dac获取sharepoint list的数据
好吧,我也“今天闲来无事"给dac添加了读取SharePoint List的功能,说白了,就是把SharePoint的List看成数据库的表,这样,就可以把http://moss这样的地址当成数据库连接字符串,把caml语句当成command,像使用真的数据库一样获取数据。
代码
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> SharePointConnection connection = new SharePointConnection("http://moss/Docs"); SharePointCommand command = connection.Crea
http://www.cyqdata.cn/cnblogs/article-detail-194
[SharePoint 2010 的那些事儿-客户端对象模型]初识SharePoint客户端对象模型
一直以来SharePoint都为我们提供了丰富的服务器端对象模型,利用这些服务器端对象模型Developer们可以对MOSS做出各种扩展,并以此来实现最终用户的各种要求。但在今天各种RIA技术大行其道的时代,传统的Web应用程序有时已经不能很好的满足用户的需求了。在MOSS 2007时,要想开发一个可以连接到SharePoint的客户端应用程序我们只能选择利用SharePoint Web Service或是自己开发的Web Service来完成,个人感觉这种方法真的是很不方便。不过现在好了,利用SharePoint 2010 新加入的客户端对象模型可以使我们更简单的完成这一工作。简而言之,客户端对象模型拥有服务器端对象模型的大部分功能(注意,不是全部功能),不论是在传统的基于.Net Framework的客户端应用程序中,还是在WPF或Silverlight应用程序中,又或者是在JavaS
http://www.cyqdata.cn/cnblogs/article-detail-192
WCF面向服务应用程序系列之十五:托管(Hosting)-WAS托管
WAS托管:Windows激活服务(WAS)是一个系统服务,是IIS7的一部分,也可以独立的安装与配置。IIS与WAS的主要区别在于WAS并不局限使用HTTP,它支持所有可用的WCF传输协议、端口与队列,支持的协议包括:HTTP、TCP、IPC、MSMQ。
WAS提供了大量基于自托管的强大功能,包括应用程序池、回收机制、空闲时间管理(Idle Time Mannagement)、身份管理(Identity Management) 以及隔离(Isolation);宿主进程可以根据情况选择使用这些功能。
下面我们通过一个DEMO来介绍WAS托管(net.tcp绑定)。
&n
http://www.cyqdata.cn/cnblogs/article-detail-177
Linux内核里的智能指针
众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异常。现代的C/C++类库一般会提供智能指针来作为内存管理的折中方案,比如STL的auto_ptr,Boost的Smart_ptr库,QT的QPointer家族,甚至是基于C语言构建的GTK+也通过引用计数来实现类似的功能。Linux内核是如何解决这个问题呢?同样作为C语言的解决方案,Linux内核采用的也是引用计数的方式。如果您更熟悉C++,可以把它类比为Boost的shared_ptr,或者是QT的QSharedPointer。
在Linux内核里,引用计数是通过struct kref结构来实现的。在介绍如何使用kref之前,我们先来假设一个情景。假如您开发的是一个字符设备驱动,当设备插上时,系统自动建立一个设备节点,用户通过文件操作来访问设备节点。
如上
http://www.cyqdata.cn/cnblogs/article-detail-163
Think in SharePoint 2010 OOTB Project: Site Columns & Site Content Type
SharePoint 2007 OOTB 项目力求快速开发SharePoint Portal,项目上主要是以OOTB Feature为主,在开发上大部分是在用SharePoint Designer。
这样的模式有以下缺点:
1. 没有应用程序周期管理的支持(ALM),没有源代码管理工具,没有利用解决方案包进行部署。
2. 所有自定义的内容都在数据库中,不能利用文件模板(Ghosted Page)来增强访问效率。
没有源代码管理工具对站点进行开发的风险是很大的,没有用Solution Package 部署这样会对效率上造成一些影响。开发这类型的站点如果部署Solution 也必须要在Farm级别,这也是直接用SPD的原因了。
目前SP 2010 + VS2010 + TFS2010开发站点,再加上Sandbox Solution不需要Farm管理员只要Site C
http://www.cyqdata.cn/cnblogs/article-detail-162
Windows PowerShell 2.0语言之扩展类型系统
参与博客评选,欢迎大家为我投上宝贵的一票,谢谢!http://2010blog.51cto.com/274616
本文将简要介绍PowerShell的类型系统,以及内置的类型适配器和类型扩展如何协同工作,以实现所有代码中存在的类型。这里的扩展类型系统不仅仅是对于标准的.NET、COM和WMI对象类型的扩展,也对所有未知扩展公开。可以为活动对象添加属性和成员或者修改类型定义,这样所有该类型的对象都会自动添加新的成员,从而通过为目标对象添加自定义属性和方法来个性化定义运行环境。在学习如何修改对象和类型之前,通常会创建一些操作对象的常用函数,所以必须为函数名添加前缀或后缀以便于辨别函数操作的对象。如果将这些函数改成方法作为扩展类型,即可得到更短的类型名,从而不必记忆过多的函数名。
PowerShell可以灵活地将二进制对象转换为适当格式的文本,这样允许用户将一系列对象转换后填充到表格
http://www.cyqdata.cn/cnblogs/article-detail-155
基于Windows XP搭建WinCE6.0开发平台--最新最省(VS2005+XP SP3)
得益于广大技术爱好者的无私奉献和共享精神,自己搭建WinCE6.0 R3开发平台的过程基本顺利,但在搜索过程中发现不同的网友给出了不同的版本,有的差别还不小,我就根据自己的经历,整理一下最新最省的方法步骤,此法缺点是需要联网在线安装,全部装好预计要8小时以上,供大家参考:
-官网步骤:http://www.microsoft.com/windowsembedded/en-us/products/windowsce/getting-started.mspx
-官网更新:http://msdn.microsoft.com/en-us/windowsembedded/ce/dd430902.aspx
【安装步骤】(适用XP SP3系统,至于Vista和Win7可参考上面官网或其他网友打上相应的补丁即可):
-1.安装WINCE6.0集成开发平台VS2005中文版(其实我蛮想装英文版,但手
http://www.cyqdata.cn/cnblogs/article-detail-143
silverlight for wince 6.0 的项目开发模板
时间:18:21 2010-12-1 环境:开发环境:VS2008 +XAML2CPP.EXE + SWE 2 + BLEND 2/3运行环境:WINCE 6.0 R3硬件加速: DirectX 联系:网站: http://www.pvontek.comE-MAIL: pengxinglove@gmail.com 参考资料 [1] http://hi.baidu.com/419836321/blog/item/2a9615221450e94aad34deba.html 背景 使用SWE开发项目有一段时间了,但由于WINCE6.0上,MS没有提供项目开发模板,每一次新建项目都要重复或修改对于一个已有的项
http://www.cyqdata.cn/cnblogs/article-detail-142
Windows PowerShell 2.0语言开发之脚本签名
脚本签名用来保护代码在发布之后,用户使用之前不被篡改。数据源发送方使用自己的私钥加密数据校验和其他与数据内容有关的变量,完成对数据的合法“签名”;数据接收方则利用对方的公钥来解密收到的“数字签名”。并将结果用于数据完整性检验,以确认签名的合法性。 1 代码签名如何工作 签名代码确保程序对目标用户无害,其背后存在复杂而严密的操作来保证签名的有效性。当处理可执行代码签名时存在代码的完整性和来源的有效性问题,为此需要确保代码没有被篡改。如需要确认没有人中途截取并替换发送端的代码,并确认文件的来源是其标识的来源人。 1.1 保证脚本的完整性 为了验证将要执行的代码确系出自原作者手中并没有任何增删,在发送代码给其他人之前可以用算法获取代码的消息摘要,计算机科学中已经提供了相应的函数用于计算数据流的校验和。一些流行的能获取消息摘要的算法包括MD5和SHA-1,这些函数有时称为“哈希函数”,它们
http://www.cyqdata.cn/cnblogs/article-detail-140
WinForm控件设计:DataGridView导出数据
做WinForm开发离不开一些基本的控件,作为数据列表显示控件中,其中最为重要的要数 DataGridView,以前用的是一些第三方控件,提供了比较灵活和方便的功能,比如:根据所见即所得导出数据到Excel 或者 文本,没办法自力更生才是生存之道。 DataGridView的数据导出功能在网络上搜索后,有一些同仁实现过,但有些是需要依赖Excel ,这种方式不但耦合性强,性能也差,为了一劳永逸的解决这个问题,特改写了代码,在此提供给各位同仁,欢迎斧正。 1、首先,看使用方法: dgvProjectList.ExportToExcel();或者 dgvProjectList.ExportToExcel("项目列表"); 如果不使用数据导出功能,不会对
http://www.cyqdata.cn/cnblogs/article-detail-129
Windows PowerShell 2.0 代码调试并排除bug
没有任何脚本或程序能够保证在任何情况下毫无错误地执行,在外界条件变化的情况下,需要预防可能出错之处。本文将着重讲解如何调试PowerShell代码,即查找并排除bug,这是每个开发人员都应该熟练掌握的技术。在本文将介绍PowerShell提供的解决方法,以及诊断和预防错误的方法,以使程序更加健壮和稳定。 大多数编程语言和环境提供了完整调试特性的系统,可以逐步跟踪程序的执行,保证所有的执行过程符合预定的算法。然而PowerShell并没有提供脚本调试程序,这样开发人员必须采取其他手段来调试错误。可以通过一些巧妙的手段贴近于对程序的逐步调试,临时挂起执行流并检查程序状态。 对于一些复杂的任务,通常情况下会将程序细化分解为多个相对独立的子模块来检查各自的功能。分解后的模块之间要尽可能不包含过多耦合,这样才不会在调试时造成太多的麻烦。 1 打印调试 通过打印来调试程序是最原始且很有
http://www.cyqdata.cn/cnblogs/article-detail-108