游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3851|回复: 0

实现法线贴图3D模型渲染的脚本代码(附源码)

[复制链接]

3

主题

5

帖子

3214

积分

论坛元老

Rank: 8Rank: 8

积分
3214
发表于 2015-2-27 09:00:33 | 显示全部楼层 |阅读模式
这几天研究了下wooyoogame的技术,这个网站的3d显示实现貌似很简单的样子哦,我做了个简单的教程给大家
里面的脚本感觉也不难,有点想json的样子,靠配置就可以做出显示了
先到http://www.wooyoogame.com?sp=209 注册一个账户,然后点击游戏开发(装个插件)就可以写脚本了

1.导出模型(记得要调整下比率单位1为1米),不然模型会超大或超小

2.将导出的obj模型和纹理图片上传到平台中

3. 在ide里面读取模型和创建出模型

LoadModel("testMdl",":/tiantian/orge.obj","obj");Create({    type:"mesh";    model:"testMdl";});


显示效果如下

4. 读取模型diff纹理文件

clear();LoadModel("testMdl",":/tiantian/orge.obj","obj");LoadImage("bodyImg",":/tiantian/body_dif.jpg");LoadImage("weaponImg",":/tiantian/weapon_dif.jpg");Create({    type:"mesh";    model:"testMdl";//模型信息    Geometries:    {        {index:0,texture:"weaponImg"};//子模型0设置        {index:1,texture:"BodyImg"};//子模型1设置    };});

哈哈,现在基本效果出来了,后面就是调整更多的效果了
5. 读取法线贴图纹理并且加入更复杂的shader配置

clear();LoadModel("testMdl",":/tiantian/orge.obj","obj");SmoothModel("testMdl");LoadImage("bodyImg",":/tiantian/body_dif.jpg");LoadImage("body_nImg",":/tiantian/body_nor.jpg");LoadImage("weaponImg",":/tiantian/weapon_dif.jpg");LoadImage("weapon_nImg",":/tiantian/weapon_nor.jpg");Create({    type:"mesh";    model:"testMdl";//模型信息    Geometries:    {        {            index:0;            shader:            {                type:"NormalMap";                Texture: "weaponImg";                normalMap:"weapon_nImg";            };        };//子模型0设置         {            index:1;            shader:            {                type:"NormalMap";                Texture: "bodyImg";                normalMap:"body_nImg";            };        };//子模型0设置    };});


6.有法线的效果了,可以看到兽人的青筋暴起了,现在我们在加入一些细节设置,比如createMipmap来生成mipmap纹理和光的调整

clear();LoadModel("testMdl",":/tiantian/orge.obj","obj");SmoothModel("testMdl");LoadImage("bodyImg",":/tiantian/body_dif.jpg");CreateMipmap("bodyImg",16);LoadImage("body_nImg",":/tiantian/body_nor.jpg");CreateMipmap("body_nImg",16);LoadImage("weaponImg",":/tiantian/weapon_dif.jpg");CreateMipmap("weaponImg",16);LoadImage("weapon_nImg",":/tiantian/weapon_nor.jpg");CreateMipmap("weapon_nImg",16);Create({    type:"mesh";    model:"testMdl";//模型信息    Geometries:    {        {            index:0;            shader:            {                type:"NormalMap";                Texture: "weaponImg";                normalMap:"weapon_nImg";                Ambient:{0.5,0.5,0.5};                Diffuse: {0.7,0.7,0.7};                Specular: {0.2,0.2,0.2};            };        };//子模型0(武器)设置         {            index:1;            shader:            {                type:"NormalMap";                Texture: "bodyImg";                normalMap:"body_nImg";                Ambient:{0.5,0.5,0.5};                Diffuse: {0.7,0.7,0.7};                Specular: {0.2,0.2,0.2};            };        };//子模型1(身体)设置    };});



大工搞成了,保存脚本就可以生成一个连接,在线就可以看得到
http://www.feekood.com/?path=:/tiantian/ShowOrge.ais

源代码下载
http://pan.baidu.com/s/1jGuxeSm

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 20:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表