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

转载 http://blog.csdn.net/games_maker/article/details/43935835

这几天研究了下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:"NormalMapEx";
                Texture: "weaponImg";
                DiffuseMap: "weaponImg";
                normalMap:"weapon_nImg";
            };
        };//子模型0设置
         {
            index:1;
            shader:
            {
                type:"NormalMapEx";
                Texture: "bodyImg";
                DiffuseMap: "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:"NormalMapEx";
                Texture: "weaponImg";
                DiffuseMap: "weaponImg";
                normalMap:"weapon_nImg";
                Ambient:{0.5,0.5,0.5};
                Diffuse: {0.7,0.7,0.7};
                Specular: {0.3,0.3,0.3};
            };
        };//子模型0(武器)设置
         {
            index:1;
            shader:
            {
                type:"NormalMapEx";
                Texture: "bodyImg";
                DiffuseMap: "bodyImg";
                normalMap:"body_nImg";
                Ambient:{0.5,0.5,0.5};
                Diffuse: {0.7,0.7,0.7};
                Specular: {0.3,0.3,0.3};
            };
        };//子模型1(身体)设置
    };
});

大工搞成了,保存脚本就可以生成一个连接,在线就可以看得到

http://www.feekood.com/?path=:/tiantian/ShowOrge.ais

时间: 2024-08-02 19:16:00

实现法线贴图3D模型渲染的脚本代码的相关文章

第七章:3D模型渲染

原文链接: http://www.rastertek.com/gl40tut07.html Tutorial 7: 3D Model Rendering This tutorial will cover how to render 3D models in OpenGL 4.0 using GLSL. The code in this tutorial is based on the code from the diffuse lighting tutorial. 本章将介绍如何在OpenGL

Flash Stage3D 在2D UI 界面上显示3D模型问题完美解决

一直以来很多Stage3D开发者都在为3D模型在2DUI上显示的问题头疼.Stage3D一直是在 Stage2D下面.为了做到3D模型在2DUI上显示通常大家有几种实现方式,下面来说说这几种实现方式吧. 实现方式1: 在2DUI上挖个洞透过去显示3D层.这种做法的缺陷在于如果两个UI界面同时打开就会UI错层显示错乱.为了解决这问题很多程序员选择了当挖洞显示3D的UI打时把其他界面隐藏掉,用户体验超差. 实现方式2: 利用Context3D 的 drawToBitmapData API 实时将3D

将.stl文件转化为.dae并动态加载到SceneKit显示(ios中显示3d模型)

ios8之后苹果推出了一个3D模型渲染框架.SceneKit.但是国内针对这方面的教程并不是很多.前两天搞了一下也是一头雾水,终于把最基础的内容搞明白了之后,写下这篇随笔作为cnblogs的开篇,希望能一直写下去. SceneKit现在可以支持有限的几种模型,截止到我写这篇文章为止似乎只有.dae和.abc后一种模型我没有使用过.这篇文章只针对.dae模型写. 首先如果是希望加载一个已有的,不需要程序在运行的时候动态添加的dae模型.那么我们可以直接新建一个game类型的工程.在选项中选择Sce

Unity3D 学习教程 8 3d模型加贴图

点击创建  添加一个文件夹 命令为pic 把图片拖入到工程中 拖入后图片显示在pic文件夹中 把图片拖到立方体中 这样就完成了为3D模型添加贴纸的工作 --------------------------------------------------------------------------------------------------------------------------------------------------- 另一种方法添加贴纸 创建一个贴纸球  点击创建 点击

untiy 3d ShaderLab_第8章_3_ 单光贴图和Forward 渲染路径

8.3 单光贴图和Forward 渲染路径 8.3.1单光照贴图在VertexLit和Forward下面的不同表现 在单光照贴图的情况下,Camera的RenderingPath为VertexLit时,有一个不理想的地方就是被烘焙过的静态物体,默认的材质不会受到实时光照的影响.当然,可以通过提供自定义的材质改变这一行为,但是很麻烦.在RenderingPath为Forward时,这种麻烦就不会存在了,经过烘焙物体,Unity的默认材质会继续受到实时Pixel光源的影响. 8.3.2 准备可应用于

【转】法线贴图原理

原文地址http://www.cnblogs.com/flytrace/p/3387748.html 我算个笨人吧.笨人以前弄懂一些东西后,讲给笨人听往往更有效.看之前请自行具备图形学关于光照的基础知识. >> world/object space normal map 我们先讲基于世界或模型坐标的法线贴图(world/object space normal map).不常用,但是基础. 首先,请无视你之前google到的所谓通过Photoshop生成法线贴图类似文章,美术除外.那只是一种利用

【转载】法线贴图Nomal mapping 原理

法线贴图多用在CG动画的渲染以及游戏画面的制作上,将具有高细节的模型通过映射烘焙出法线贴图,贴在低端模型的法线贴图通道上,使之拥有法线贴图的渲染效果,却可以大大降低渲染时需要的面数和计算内容,从而达到优化动画渲染和游戏渲染的效果. 现在好多3d网游都没有法线贴图啊,呵呵,<giant>就没有. CG:计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学.简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形

【一步步学OpenGL 26】-《法线贴图》

教程 26 法线贴图 原文: http://ogldev.atspace.co.uk/www/tutorial26/tutorial26.html CSDN完整版专栏: http://blog.csdn.net/column/details/13062.html 背景 之前的我们的光线着色器类已经可以达到很不错的效果了,光线效果通过插值计算遍布到整个模型表面,使整个场景看上去比较真实,但这个效果还可以进行更好的优化.事实上,有时插值计算反而会影响场景的真实性,尤其是用材质来表现一些凹凸不平的纹理

法线贴图技术

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多Unity3D资源.Unity3D培训视频.Unity3D教程.Unity3D常见问题.Unity3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 什么是法线贴图技术呢?这是一种用来实现3D效果的一种技术,要想理解这种技术还请您听我慢慢道来. 我们知道,在游戏中经常会有这样的情况,就是一个平面这个平面在现实中并不是一个"平"面,例如砖墙的表面带有石质浮雕等等.这