当前位置:  编程技术>移动开发
本页文章导读:
    ▪WAP开发入门与增高之文本格式化及其元素        WAP开发入门与提高之文本格式化及其元素 转自:http://bbs.xml.org.cn/dispbbs.asp?boardID=77&ID=59088第三部分:WML主要语法 -- 文本格式化及其元素3.7 文本格式化及其元素WML程序中,为使显示的文.........
    ▪ 从maya灯光贴图light地图到unity        从maya灯光贴图lightmap到unity 从maya灯光贴图到unity【专业iPhone 3d游戏、移动游戏开发:北京贝武易科技公司】有疑问请联系我QQ:363596350lightmap灯光贴图,让场景更加真实。我们有两个uv设置•.........
    ▪ WAP开发入门与增高之Float函数库       WAP开发入门与提高之Float函数库 转自:http://bbs.xml.org.cn/dispbbs.asp?boardID=77&ID=590886.3 Float函数库名称:Float说明:这个函数库包含了典型与常用的浮点数算术程序。int程序:int(value)说明:.........

[1]WAP开发入门与增高之文本格式化及其元素
    来源: 互联网  发布时间: 2014-02-18
WAP开发入门与提高之文本格式化及其元素
转自:http://bbs.xml.org.cn/dispbbs.asp?boardID=77&ID=59088


第三部分:WML主要语法 -- 文本格式化及其元素

3.7 文本格式化及其元素

WML程序中,为使显示的文本呈现出丰富的样式,WML提供了一些用于格式化的元素,我们通过这些元素及其相应的标签可以对文本进

行标注和控制,从而实现不同的显示效果。

3.7.1 增强元素

增强元素都是一些成对的标签,用于指定文本的增强显示信息。比如b元素通过<b></b>标签可以控制其中的文本按照粗体字进行显示。

3.7.2 br元素

“br”即break,是用于换行的元素,它是使用单独的<br/>标签进行定义的。br元素的作用相当于插入一个回车符。

3.7.3 p元素

“p”即指paragraph,p元素用于划分段落,是当前文本换行并插入一个空白行。p元素可以使用单独的<p/>标签进行定义,也可以使

用<p>和</p>标签成对的进行定义。其语法格式为:

<p aligh="alignment" mode="wrapmode"/>



<p aligh="alignment" mode="wrapmode"/>
文本
</p>

1)align。该属性用于设置段落在浏览器中的对齐方式,有left、center和righ三种取值。这三种参数值分别表示p元素当前定义的

文本段落及浏览器窗口的左侧、中间和右侧进行对齐。默认值为left,及段落与浏览器窗口的左侧对齐排列。

2)mode。该属性用于指定下一段落的换行方式。

3.7.4 td元素

td元素用于规定表格单元格的内容。其语法格式如下:

<td> 单元格内容 </td>

3.7.5 tr元素

WML中的表格是按照行、列进行组织的。一个表格由若干行组成,每行由若干列组成。tr元素用于定义表格的行。其语法格式如下:

<tr> 单元格内容 </td>
</tr>

3.7.6 table元素

table元素与tr元素、td元素一起,可用来创建能容纳文本和图像的表格,并可设置表格各列中文本和图像的对齐方式。其语法格式

如下:

<table align="alignment" title="label" columns="n">



<table align="alignment" title="label" columns="n">
内容
</table>

其中各个属性的功能和用法介绍如下:

1)align。该属性用于指定表各个列中文本和图像的对齐方式。

2)title。该属性用于指定table元素的标题。

3)columns.该属性用于指定表格的列数,该数不能为0。

    
[2] 从maya灯光贴图light地图到unity
    来源: 互联网  发布时间: 2014-02-18
从maya灯光贴图lightmap到unity
从maya灯光贴图到unity
【专业iPhone 3d游戏、移动游戏开发:北京贝武易科技公司】
有疑问请联系我QQ:363596350

lightmap灯光贴图,让场景更加真实。

我们有两个uv设置

• An Ambient Occlusion pass.环境Occlusion灯光
• A Ray Trace pass.         光线追踪灯光

好,开始。

在Unity中开始一个新的项目,a new Project。
包含标准包,Standard Assets Package;
同时,导入我们的资源包,LightMappingTutorial.unitypackage,我们在文件里提供了,unity里的资源可以以包的概念导入导出。
在文件包里打开TutorialStart场景;


现在的画面是没有等过效果的,视觉真实性不是很好,下面我们用lightmap来把场景调的更真实些。
整个场景是包含了三个面物体(meshes): “HouseMesh”, “TreeTrunks”, 和 “TreeBranches”.
房子,树干,树叶。

房子在maya中我们就用到一个材质球。
在maya里打开场景House.mb,如下图:


选择房子物体,打开材质编辑器,Window/UV Texture Editor...


下面我们使用Ambient Occlusion模拟全局灯光效果,准备生成第一个Lightmap。
•需要生成一个新的材质,打开Hypershade Window (Window/Rendering Editors/Hypershade...)
•生成一个新的Surface Shader (Create/Materials/Surface Shader)
•生成一个Mental Ray环境材质纹理:Mental Ray Ambient Occlusion Texture (Create/mental ray Textures/Mib_amb_occlusion).



双击“mib_amb_occlusion1”材质球,打开它的属性窗口Attribute Editor,给它重命名为:“AOTexture”。
• 把“surfaceShader1” 重命名为“AOShader”.
在材质编辑窗口,用鼠标中键把AOTexture 拖放到AOShader上面,再弹出的选择菜单中选Default方式,这就把AOTexture和AOShader以默认的方式连接起来。
这里我们就完成了对房子Ambient Occlusion设置所用到材质了。



• 双击AOTexture,编辑它的属性(改变2个设置):
第一个,采样值(the number of Samples),默认是16,为了达到更好的效果,提到64或128,根据个人的机器而定。
第二个是最大间距值(Max_distance),默认为0,但是远的地方的物体我们不需他们之间互相影响,我们把值设为Max Distance-----1.5,就可以。
设置完毕。
•鼠标中键把AOShader材质拖给房子,房子变黑。
•把渲染方式设置为Mental Ray,Window/Rendering Editors/Render
Settings...
• 测试渲染;


存在一些斑点splotchiness,取决于你的Samples值,但是后面跟的材质合成在一起的时候看不出来,基本上没问题。

• 好了,下面我们把它烘焙出来。
我们需要一个新的UV Set,进入maya的Modeling栏。
选择房子,进入Create UVs/Automatic Mapping (options)设置窗口。
设置如下:
• Set the number of Planes to 6
• Set Optimize to “Fewer Pieces”选,较少片段方式
• Set the Scale Mode to “Stretch to Square”保证正方体
• Set “Shell Stacking” to “Shape”. This ensures that Maya will map the UV shells into the tightest composition.让贴图更加紧凑,不留大空。
• Finally, check Create New UV Set and name it “lightmap”.生成新的UV Set ,并命名为lightmap。
• 设置好了,点击Project钮.



进入材质编辑器,我们可以看到有2个UV sets,他们是原来的“map1” 和 新的“lightmap”.
下面,我们开始烘焙这个Ambient Occlusion通道。
在“Channel Box/Layer Editor”栏,隐藏“TreeBranchesLayer”树叶层;


因为树叶用到了Alpha通道,在计算的时候是根据面来算,而不是根据通道来算,会出现不符合实际的阴影,所以,我们就隐藏了它。

选择房子,选择菜单Color/Batch Bake(mental ray) (options)设置


这里有很多参数设置
• Objects to Bake is “Selected”,要烘焙的物体时“Selected”选择的物体;
• Bake to Texture—make sure Bake Shadows is set.烘焙到材质,选择烘焙阴影;
• Camera is “perspective”.选择透视相机;
• 选择use bake scene override;
• Color mode is “Light and Color”.颜色模式:灯光和材质;
• 选择 Orthogonal Reflection(直角反射)(没有这个,AO计算会计算每个角生成不需要的材质);
• Normal Direction is “Surface Front”.法线方向为“面的前方”;
• 前缀名Prefix : “HouseAO”.
• 设置尺寸为2048 x 2048 ,图像格式为“TIFF”;
• 选上Bake To One Map;
• “Fill Texture Seams”相对于2048的图,设为10最合适;填充材质接口;
• The last setting is to check Override mesh UV set assignments and to name it “lightmap”.最后一个设置为,检查Override mesh UV 分配为 “lightmap”.
最后,整一个设置表为:


最后,转换、关闭,Convert and Close。
这个过程需要些时间。

结果显示一片乱,但是实际上这个AO已经通过UV:lightmap正确的烘焙出来了,只是选择视图显示是“map1”而已。后面我们接续工作。

把HouseDiffuse shader重新赋予给房子,恢复正常显示;

下面我设置另外一种方式:Ray Trace pass:
生成一个环境灯,Ambient Light,Create/Lights/Ambient Light (options).
设置如下
Intensity  0.15;
Ambient Shade 0;
这个灯光是用来调整阴影的对比度的,让影子不要太黑;
• 不生成阴影 Cast Shadows ,按Create生成.

• 下面,再生成一个方向灯,Directional Light.
在属性窗口,设置颜色为HSV (48.35, 0.185, 1.0),灯光有点偏黄;



在下面的Shadows栏,选择Use Ray Trace Shadows;
旋转灯光到一定的角度,模拟太阳照射;
如(-45, 45, 0);

下面的工作是进行Mental Ray设置;
打开渲染窗口,Render Settings Window (Window/Rendering Editors/Render Settings...).
把“mental ray” 的渲染质量Quality Presets 提高为“Production”(生产级别的).


到下面的Raytracing菜单,确定Ray Tracing 是备选的状态;
• 到下面的Shadows栏,改变Shadow Method 阴影方法为“Sorted”(分类阴影).
对于树叶的Alpha通道树叶很重要,否则渲染出多变形。



• 确定“TreeBranchesLayer”层打开,选择房子;
• 打开烘焙设置窗口,Color/Batch Bake (mental ray) (options).
做两个改变:
• 改变颜色模式Color Mode 为“Only Light”.
• 重命名Prefix为“HouseShadow”.
• 点击Convert and Close钮,开始烘焙;
进入HyperShade window,把刚才烘焙生成的材质命名为“FinalShader”。

下面我们就把2个通道生成的材质合成为1个材质;
我们用Photoshop进行合成,在这个目录下“Documents/maya/projects/default/renderData/
mentalray/lightMap”应该有我们刚生成的tif格式文件。


用Photoshop把他们合成到一块;
• 把“HouseAO.tif” 叠到“HouseShadow.tif”上,层的叠加方式用blending mode ------Multiply.(正片叠加方式)。
把文件保存到unity项目的资源(Asset)里,名为“LightMapTexture.psd”,注意,不要合层,方便日后调整。

回到Hypershade Window,材质窗口,生成一个新的Lambert材质,名为LightMap;
• Graph/Clear Graph,清理Hypershade Window的工作区域.
• 选择“LightMap” Material,执行Graph/Input Connections.
• 生成一个层材质Layered Texture通过default默认方式连接到“LightMap” Material.



这里讲究的是一个思路和方法,我们生成了一个Layered Texture,然后把刚才生成的房子的材质和新烘焙、合成出来的黑白图,让他们以一种Illuminate(照明)的方式融合起来,然后赋予房子,需要说明的是unity能自动人maya的文件,同时,也认maya的分层贴图,最后的连接为


清晰显示为



烘焙的黑白图连接到Layered Texture的inputs[0].color



彩色材质图连接到Layered Texture的inputs[1].color



Layered Texture的Blend Mode融合方式为:Illuminate



还有重要的一步是调整好对应的UV,选择房子,单击右键UV Sets/UV Linking...
设置好对应的UV


最后,把lightmap材质再赋一次给房子。



保存文件,最后到unity里,自动就能认maya的文件,把文件直接拖到视图就可以。


• 选中 “HouseMesh” 把材质类型改为“Lightmapped/Diffuse”.
• 把合成好的黑白材质“LightMapTexture.psd” 拖到“Lightmap (RGB)”位置.




好,显示效果很好,不错!

全文完。

【专业iPhone 3d游戏、移动游戏开发:北京贝武易科技公司】
有疑问请联系我QQ:363596350


























    
[3] WAP开发入门与增高之Float函数库
    来源: 互联网  发布时间: 2014-02-18
WAP开发入门与提高之Float函数库
转自:http://bbs.xml.org.cn/dispbbs.asp?boardID=77&ID=59088


6.3 Float函数库

名称:Float
说明:这个函数库包含了典型与常用的浮点数算术程序。

int

程序:int(value)
说明:回传给予值的整数部分。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var a =3.14;
var b =Float.in(a); //b=3
var c =Float.in(-2.8); //c=-2

floor

程序:floor(value)
说明:回传整数值,这个只要最接近给予值但不能大于它。
如果value已经是个整数,其结果就是这个值本身。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var a =3.14;
var b =Float.in(a); //b=3
var c =Float.in(-2.8); //c=-3

ceil

程序:ceil(value)
说明:回传一个只要最接近给予值但不能小于它的整数值。
如果value已经是个整数,其结果就是这个值本身。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var a =3.14;
var b =Float.in(a); //b=4
var c =Float.in(-2.8); //c=-2

pow

程序:pow(x,y)
说明:回传x的y次方值。
如果x是负数,则y必须为正数。
参数:x=数字
    y=数字
回传值:浮点数或invlid
例外状况:如果x= =0而且 y<0,则回传invalid
如果x<0而且y不是个整数,则回传invalid
范例:var a =3
var b =Float.pow(a,2); //b=9

round

程序:round(value)
说明:传回最接近给予值的整数
若两个整数值跟value接近的程序相等,则选择比较大的数。
若value已经是个正数,其结果就是value本身。
参数:value=数字
回传值:整数或invalid
例外状况:无
范例:var a=Float.round(3.5); // a=4
var b=Float.round(-3.5); //b=-3
var c=Float.round(0.5); // c=1
var d=Float.round(-0.5); //d=0

squt

程序:sqrt(value)
说明:传回给予值value的平方根近似值。
参数:value=浮点数
回传值:浮点数或invalid
例外状况:如果value负数,则回传invlid
范例:var a=4;
var b=Float.squt(a); //b=2.0
var c=Float.squt(5); //c=2.2360679775

maxFloat

程序:maxFloat()
说明:传回IEEE 754所支持的但准浮点数格式中最大的浮点数值。
参数:无
回传值:浮点数3.40282347E+38
例外状况:无
范例:var a=Float.maxFloat();

minFloat

程序:minFloat()
说明:传回IEEE 754所支持的但准浮点数格式中最小的浮点数值。
参数:无
回传值:浮点数1.17549435E-38
例外状况:无
范例:var a=Float.minFloat();

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3