Author Archives: 凱絲緹爾

jMonkey技術雜記

  • 使用SceneGraph, 所有translation, rotation, scale都是基於局部的.
  • 一一關聯方式:Spatial(和Node同級)-Mesh(此兩者可由assetManager加載一個obj而一次性實現)-Material-Texture(可選)
  • assetManager可以管理所有的textures, materials…使用相關的load函數即可.
  • AnalogListener會檢測按鍵時間的長短(以0-9標記), ActionListener僅檢測『有沒有按下鍵”.
  • Texture和Color都是由Material定義的(setTexture(), setColor(), setBlendeMode())…
  • jMonkey會默認定義mipmap.
  • Material的SetTexture方法中傳入的『Name”變量是在Material的j3md文件中定義的.相關信息可以查看jMonkey官方教程.

Ubuntu下安裝Node.js的方法

sudo apt-get update

sudo apt-get update sudo apt-get install build-essential

sudo apt-get install libssl-dev

sudo apt-get install g++ curl libssl-dev apache2-utils

sudo apt-get install git-core

git clone git://github.com/ry/node.git

cd node

./configure

make

sudo make install


在Mac OS系統中使用Ogre3D

一 編譯Ogre3D源代碼

  • 注:從Source編譯Ogre3D請參考PrerequistesCMake Quick Start Guide這兩篇文章.
  • 首先, 下載並解壓Ogre3D的Mac版源代碼.
  • 下載並解壓OSX Dependencies至Ogre3D源代碼文件夾, 保證它與OgreMain在同一級別.
  • 下載並安裝Cg.
  • 下載並編譯OIS, 如果之後希望用DEBUG方式編譯Ogre3D項目, 則此時也使用DEBUG方式編譯OIS. 在OIS/Mac/XCode-2.2/build/Debug位置會出現OIS.framework, 將其拷貝至/Library/Frameworks.

繼續閱讀


GLSL雜記

  • 使用的矩陣乘法為左乘(即點/向量在最右側,向左依次與一系列變換矩陣相乘)
  • 使用的向量為縱向量
  • 在GLSL中可以直接使用『*』表示向量/矩陣乘法
  • 可以使用Constructor vec3()來做vec4至vec3的Type-Casting
  • 變量可以在需要的時候再被聲明(同C++, 不同C)
  • 計算純粹表達方向的向量時需要使用Built-In函數normalize().
  • 有漫反射才有鏡面反射; 若無漫反射, 則意味著入射光的反向向量與頂點法線夾角大於90度, 這樣是不會有鏡面反射光向量的.
  • 一些Varying類型變量必須在Vertex Shader中被定義以傳遞至Fragment Shader, 如 gl_Position.
  • 大多數Fragment Shader僅計算每個像素的顏色, 而使用OpenGL光柵階段得出的深度值.
  • Vertex Shader的out變量和Fragment Shader的in變量必須一致(變量名, 類型).
  • vec2/3/4類型的成員均為有符號浮點類型.

GLSL修飾符小結

Uniform

  • 僅可以在Shader外改變取值, 在Shader中不能被改寫
  • 適合於定義那些取值不常需要改變的變量
  • Uniform變量被Vertex Shader和Fragment Shader所共享
  • 除非函數有Sampler類型的參數, 否則一個Uniform變量被聲明後必須被使用
  • 所有類型的變量和數組均可被Uniform Qualifiers修飾

In

  • 適合於定義向Vertex Shader輸入的, 變化頻率比較高的變量.
  • 對於Vertex Shader, 不可以接受布爾標量/向量, 結構, 或Sampler. 其目的在於保持在變量值被反復修改情況下圖形硬件的High-Performance.

如何成為一名iPhone App Developer:使用iPhone或Simulator運行程序與發布

一、在iPhone Simulator上運行程序所需的準備

硬件準備:

  • 一台可以安裝Snow Leopard操作系統的計算機,一般為Mac. PC僅存在理論上的可能.

軟件準備:

  • developer.apple.com 註冊一個開髮用帳號.
  • 在該網站下載iOS SDK(即Xcode開發平台)的最新版,目前是for iOS 4.1,最近apple的移動操作系統更新頻繁,而且每一個新特性都是至關重要的,如4.1的Game Center.

繼續閱讀


凱絲緹爾的iPhone游戲開發教程(二):[轉+評注]Cocos2D快速編程指南

本文原為Ray Wenderlich所撰寫, 發表於cocos2d-iphone.org的一篇Cocos2D入門指南. 但其中存在部分對於真正的新手而言難以完全理解的部分, 現在特意添加相關注釋後傳出本文, 意在分享與交流Cocos2D技術學習的點滴, 同時繼續推廣這個優秀而簡易的iPhone游戲開發引擎.
注:本文中所有注釋均出現在相應正文下方.

XCode使用技巧

1. 在Terminal中輸入
defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions ‘{“ORGANIZATIONNAME” = “DLMW – Group”;“FULLUSERNAME” = “Tingshuo \”Marcel\“ WANG”;}’
以修改XCode文件頭部的創建者和所屬公司.

2. 三指觸摸屏上滾,切換至當前類.h文件,反之切換至相應.m文件.

3. 『Warning:…may not respond to …』有可能是因為某函數沒有顯示聲明.

4. 使用低版本Cocos2D導致的Debugger過期問題解決方案:(Debugger位置顯示Base SDK Missing)
Project->Edit Project Setting->General->Base SDK for All Configurations->選擇當前版本Debugger.

5. 『Code Sign Error:a valid provisioning file…』問題解決方案:Resources->Info.plist->Bundle identifier->修改使其符合註冊的Bundle identifier,目前為marcel.com.DLMW.*

6. 注意:Simulator大小寫不敏感,而Device是大小寫敏感的。該問題會導致錯誤『Couldn’t add image:imagename.png in CCTextureCache』.


凱絲緹爾的iPhone游戲開發教程(一):Accelerated Objective-C

本文首發於DLMW – Group所有的iPhone游戲開發工作室Google Docs, 原為Private文檔. 其本意在於使用一個簡潔的教程使工作室的其它成員能夠迅速掌握這門開發語言.

“在信息時代, 客觀障礙已不復存在, 所謂障礙都是主觀上的. 如果你想研發什麼新的技術, 你不需要幾百萬美元的資金, 你只需要在冰箱裡放滿pizza和可樂, 再有一台便宜的計算機, 和與之獻身的決心, 你即可擁有任何你想擁有的編程深度.”

-John Carmack-

 

是的. 對於今天的獨立游戲開發者而言, 這是一個最好的時代, 這還是一個最好的時代.

繼續閱讀


C++重載小結

  • 返回值類型在選擇重載函數版本時不具備參考性.若不匹配,則隱式類型轉換,若不成功,則編譯失敗.