From f9158592e1478b2013afc7041d9ed041cf2d2f4a Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 13 Jan 2014 19:47:58 +1000 Subject: Update Irrlicht to 1.8.1. Include actual change markers this time. lol --- .../examples/13.RenderToTexture/Makefile | 38 ---- .../13.RenderToTexture/RenderToTexture.cbp | 55 ----- .../13.RenderToTexture/RenderToTexture.dev | 59 ----- .../13.RenderToTexture/RenderToTexture.vcproj | 163 -------------- .../RenderToTexture_vc10.vcxproj | 231 ------------------- .../RenderToTexture_vc11.vcxproj | 235 -------------------- .../13.RenderToTexture/RenderToTexture_vc8.vcproj | 231 ------------------- .../13.RenderToTexture/RenderToTexture_vc9.vcproj | 230 ------------------- .../examples/13.RenderToTexture/main.cpp | 211 ------------------ .../examples/13.RenderToTexture/tutorial.html | 244 --------------------- 10 files changed, 1697 deletions(-) delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/Makefile delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.cbp delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.dev delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.vcproj delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc10.vcxproj delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc11.vcxproj delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc8.vcproj delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc9.vcproj delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/main.cpp delete mode 100644 libraries/irrlicht-1.8/examples/13.RenderToTexture/tutorial.html (limited to 'libraries/irrlicht-1.8/examples/13.RenderToTexture') diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/Makefile b/libraries/irrlicht-1.8/examples/13.RenderToTexture/Makefile deleted file mode 100644 index b3129bc..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# Makefile for Irrlicht Examples -# It's usually sufficient to change just the target name and source file list -# and be sure that CXX is set to a valid compiler -Target = 13.RenderToTexture -Sources = main.cpp - -# general compiler settings -CPPFLAGS = -I../../include -I/usr/X11R6/include -CXXFLAGS = -O3 -ffast-math -#CXXFLAGS = -g -Wall - -#default target is Linux -all: all_linux - -ifeq ($(HOSTTYPE), x86_64) -LIBSELECT=64 -endif - -# target specific settings -all_linux: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L../../lib/Linux -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -lXcursor -all_linux clean_linux: SYSTEM=Linux -all_win32: LDFLAGS = -L../../lib/Win32-gcc -lIrrlicht -lopengl32 -lm -all_win32 clean_win32: SYSTEM=Win32-gcc -all_win32 clean_win32: SUF=.exe -# name of the binary - only valid for targets which set SYSTEM -DESTPATH = ../../bin/$(SYSTEM)/$(Target)$(SUF) - -all_linux all_win32: - $(warning Building...) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(Sources) -o $(DESTPATH) $(LDFLAGS) - -clean: clean_linux clean_win32 - $(warning Cleaning...) - -clean_linux clean_win32: - @$(RM) $(DESTPATH) - -.PHONY: all all_win32 clean clean_linux clean_win32 diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.cbp b/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.cbp deleted file mode 100644 index db3911e..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.cbp +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.dev b/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.dev deleted file mode 100644 index 83a89b0..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.dev +++ /dev/null @@ -1,59 +0,0 @@ -[Project] -FileName=example.dev -Name=Irrlicht Example 13 Render To Texture -UnitCount=1 -Type=1 -Ver=1 -ObjFiles= -Includes=..\..\include -Libs= -PrivateResource= -ResourceIncludes= -MakeIncludes= -Compiler= -CppCompiler= -Linker=../../lib/Win32-gcc/libIrrlicht.a_@@_ -IsCpp=1 -Icon= -ExeOutput=../../bin/Win32-gcc -ObjectOutput=obj -OverrideOutput=1 -OverrideOutputName=13.RenderToTexture.exe -HostApplication= -Folders= -CommandLine= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000000000000000000 -UseCustomMakefile=0 -CustomMakefile= - -[Unit1] -FileName=main.cpp -CompileCpp=1 -Folder=Projekt1 -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[VersionInfo] -Major=0 -Minor=1 -Release=1 -Build=1 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion= -FileDescription=Irrlicht Engine example compiled using DevCpp and gcc -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion= -AutoIncBuildNr=0 - diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.vcproj b/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.vcproj deleted file mode 100644 index bf3aaaa..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture.vcproj +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc10.vcxproj b/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc10.vcxproj deleted file mode 100644 index 8726dc7..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc10.vcxproj +++ /dev/null @@ -1,231 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - 13.RenderToTexture - {0914E5C8-5352-467B-8421-C9EB35BD5596} - RenderToTexture - - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - Application - false - MultiByte - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ..\..\bin\Win32-VisualStudio\ - ..\..\bin\Win64-VisualStudio\ - - - ..\..\bin\Win32-VisualStudio\ - ..\..\bin\Win64-VisualStudio\ - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - - - - .\Release/RenderToTexture.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - MultiThreaded - true - - - Level3 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories) - Console - - - - - - - .\Release/RenderToTexture.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - MultiThreaded - true - - - Level3 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win64-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories) - Console - - - - - - - .\Debug/RenderToTexture.tlb - - - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories) - true - Console - - - - - - - .\Debug/RenderToTexture.tlb - - - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - Level3 - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win64-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories) - true - Console - - - - - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - - - - \ No newline at end of file diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc11.vcxproj b/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc11.vcxproj deleted file mode 100644 index 728033d..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc11.vcxproj +++ /dev/null @@ -1,235 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - 13.RenderToTexture - {0914E5C8-5352-467B-8421-C9EB35BD5596} - RenderToTexture - - - - Application - false - MultiByte - v110 - - - Application - false - MultiByte - v110 - - - Application - false - MultiByte - v110 - - - Application - false - MultiByte - v110 - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - ..\..\bin\Win32-VisualStudio\ - ..\..\bin\Win64-VisualStudio\ - - - ..\..\bin\Win32-VisualStudio\ - ..\..\bin\Win64-VisualStudio\ - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - - - - .\Release/RenderToTexture.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - MultiThreaded - true - - - Level3 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories) - Console - - - - - - - .\Release/RenderToTexture.tlb - - - - - MaxSpeed - OnlyExplicitInline - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - MultiThreaded - true - - - Level3 - - - NDEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win64-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories) - Console - - - - - - - .\Debug/RenderToTexture.tlb - - - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - Level3 - EditAndContinue - - - _DEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win32-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win32-visualstudio;%(AdditionalLibraryDirectories) - true - Console - - - - - - - .\Debug/RenderToTexture.tlb - - - - - Disabled - ..\..\include;%(AdditionalIncludeDirectories) - WIN32;WIN64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - - - Level3 - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0c07 - - - ..\..\bin\Win64-VisualStudio\13.RenderToTexture.exe - ..\..\lib\Win64-visualstudio;%(AdditionalLibraryDirectories) - true - Console - - - - - - - Disabled - Disabled - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - EnableFastChecks - EnableFastChecks - MaxSpeed - MaxSpeed - %(AdditionalIncludeDirectories) - %(AdditionalIncludeDirectories) - %(PreprocessorDefinitions) - %(PreprocessorDefinitions) - - - - - - \ No newline at end of file diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc8.vcproj b/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc8.vcproj deleted file mode 100644 index a30959f..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc8.vcproj +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc9.vcproj b/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc9.vcproj deleted file mode 100644 index 41518d5..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/RenderToTexture_vc9.vcproj +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/main.cpp b/libraries/irrlicht-1.8/examples/13.RenderToTexture/main.cpp deleted file mode 100644 index 2ba54ab..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/main.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/** Example 013 Render To Texture - -This tutorial shows how to render to a texture using Irrlicht. Render to -texture is a feature with which it is possible to create nice special effects. -In addition, this tutorial shows how to enable specular highlights. - -In the beginning, everything as usual. Include the needed headers, ask the user -for the rendering driver, create the Irrlicht Device: -*/ - -#include -#include "driverChoice.h" - -using namespace irr; - -#ifdef _MSC_VER -#pragma comment(lib, "Irrlicht.lib") -#endif - -int main() -{ - // ask user for driver - video::E_DRIVER_TYPE driverType=driverChoiceConsole(); - if (driverType==video::EDT_COUNT) - return 1; - - // create device and exit if creation failed - - IrrlichtDevice *device = - createDevice(driverType, core::dimension2d(640, 480), - 16, false, false); - - if (device == 0) - return 1; // could not create selected driver. - - video::IVideoDriver* driver = device->getVideoDriver(); - scene::ISceneManager* smgr = device->getSceneManager(); - gui::IGUIEnvironment* env = device->getGUIEnvironment(); - - /* - Now, we load an animated mesh to be displayed. As in most examples, - we'll take the fairy md2 model. The difference here: We set the - shininess of the model to a value other than 0 which is the default - value. This enables specular highlights on the model if dynamic - lighting is on. The value influences the size of the highlights. - */ - - // load and display animated fairy mesh - - scene::IAnimatedMeshSceneNode* fairy = smgr->addAnimatedMeshSceneNode( - smgr->getMesh("../../media/faerie.md2")); - - if (fairy) - { - fairy->setMaterialTexture(0, - driver->getTexture("../../media/faerie2.bmp")); // set diffuse texture - fairy->setMaterialFlag(video::EMF_LIGHTING, true); // enable dynamic lighting - fairy->getMaterial(0).Shininess = 20.0f; // set size of specular highlights - fairy->setPosition(core::vector3df(-10,0,-100)); - fairy->setMD2Animation ( scene::EMAT_STAND ); - } - - /* - To make specular highlights appear on the model, we need a dynamic - light in the scene. We add one directly in vicinity of the model. In - addition, to make the model not that dark, we set the ambient light to - gray. - */ - - // add white light - smgr->addLightSceneNode(0, core::vector3df(-15,5,-105), - video::SColorf(1.0f, 1.0f, 1.0f)); - - // set ambient light - smgr->setAmbientLight(video::SColor(0,60,60,60)); - - /* - The next is just some standard stuff: Add a test cube and let it rotate - to make the scene more interesting. The user defined camera and cursor - setup is made later on, right before the render loop. - */ - - // create test cube - scene::ISceneNode* test = smgr->addCubeSceneNode(60); - - // let the cube rotate and set some light settings - scene::ISceneNodeAnimator* anim = smgr->createRotationAnimator( - core::vector3df(0.3f, 0.3f,0)); - - test->setPosition(core::vector3df(-100,0,-100)); - test->setMaterialFlag(video::EMF_LIGHTING, false); // disable dynamic lighting - test->addAnimator(anim); - anim->drop(); - - // set window caption - device->setWindowCaption(L"Irrlicht Engine - Render to Texture and Specular Highlights example"); - - /* - To test out the render to texture feature, we need a render target - texture. These are not like standard textures, but need to be created - first. To create one, we call IVideoDriver::addRenderTargetTexture() - and specify the size of the texture. Please don't use sizes bigger than - the frame buffer for this, because the render target shares the zbuffer - with the frame buffer. - Because we want to render the scene not from the user camera into the - texture, we add another fixed camera to the scene. But before we do all - this, we check if the current running driver is able to render to - textures. If it is not, we simply display a warning text. - */ - - // create render target - video::ITexture* rt = 0; - scene::ICameraSceneNode* fixedCam = 0; - - - if (driver->queryFeature(video::EVDF_RENDER_TO_TARGET)) - { - rt = driver->addRenderTargetTexture(core::dimension2d(256,256), "RTT1"); - test->setMaterialTexture(0, rt); // set material of cube to render target - - // add fixed camera - fixedCam = smgr->addCameraSceneNode(0, core::vector3df(10,10,-80), - core::vector3df(-10,10,-100)); - } - else - { - // create problem text - gui::IGUISkin* skin = env->getSkin(); - gui::IGUIFont* font = env->getFont("../../media/fonthaettenschweiler.bmp"); - if (font) - skin->setFont(font); - - gui::IGUIStaticText* text = env->addStaticText( - L"Your hardware or this renderer is not able to use the "\ - L"render to texture feature. RTT Disabled.", - core::rect(150,20,470,60)); - - text->setOverrideColor(video::SColor(100,255,255,255)); - } - - // add fps camera - scene::ICameraSceneNode* fpsCamera = smgr->addCameraSceneNodeFPS(); - fpsCamera->setPosition(core::vector3df(-50,50,-150)); - - // disable mouse cursor - device->getCursorControl()->setVisible(false); - - /* - Nearly finished. Now we need to draw everything. Every frame, we draw - the scene twice. Once from the fixed camera into the render target - texture and once as usual. When rendering into the render target, we - need to disable the visibility of the test cube, because it has the - render target texture applied to it. That's it, wasn't too complicated - I hope. :) - */ - - int lastFPS = -1; - - while(device->run()) - if (device->isWindowActive()) - { - driver->beginScene(true, true, 0); - - if (rt) - { - // draw scene into render target - - // set render target texture - driver->setRenderTarget(rt, true, true, video::SColor(0,0,0,255)); - - // make cube invisible and set fixed camera as active camera - test->setVisible(false); - smgr->setActiveCamera(fixedCam); - - // draw whole scene into render buffer - smgr->drawAll(); - - // set back old render target - // The buffer might have been distorted, so clear it - driver->setRenderTarget(0, true, true, 0); - - // make the cube visible and set the user controlled camera as active one - test->setVisible(true); - smgr->setActiveCamera(fpsCamera); - } - - // draw scene normally - smgr->drawAll(); - env->drawAll(); - - driver->endScene(); - - // display frames per second in window title - int fps = driver->getFPS(); - if (lastFPS != fps) - { - core::stringw str = L"Irrlicht Engine - Render to Texture and Specular Highlights example"; - str += " FPS:"; - str += fps; - - device->setWindowCaption(str.c_str()); - lastFPS = fps; - } - } - - device->drop(); // drop device - return 0; -} - -/* -**/ diff --git a/libraries/irrlicht-1.8/examples/13.RenderToTexture/tutorial.html b/libraries/irrlicht-1.8/examples/13.RenderToTexture/tutorial.html deleted file mode 100644 index 051a251..0000000 --- a/libraries/irrlicht-1.8/examples/13.RenderToTexture/tutorial.html +++ /dev/null @@ -1,244 +0,0 @@ - - -Irrlicht Engine Tutorial - - - - -
- - - - - - - - -
-
-
Tutorial 13. Render to Texture
-
-
-
-

This tutorial shows how to render to a texture using Irrlicht. Render - to texture is a feature with which it is possible to create nice special - effects. In addition, this tutorial shows how to enable specular highlights.

-

The program which is described here will look like this:

-


-

-
-
-
- - - - - - - -
Lets start!
-
-

In the beginning, everything as usual. Include the needed headers, - ask the user for the rendering driver, create the Irrlicht Device:

- - - - -
#include <irrlicht.h>
-#include <iostream>
-
-using namespace irr;
-
-#pragma comment(lib, "Irrlicht.lib")
-
-int main()
-{
-	// let user select driver type
-
-	video::E_DRIVER_TYPE driverType = video::EDT_DIRECT3D9;
-
-	printf("Please select the driver you want for this example:\n"\
" (a) Direct3D 9.0c\n (b) Direct3D 8.1\n (c) OpenGL 1.5\n"\
" (d) Software Renderer\n (e) Apfelbaum Software Renderer\n"\
" (f) NullDevice\n (otherKey) exit\n\n"); - - char i; - std::cin >> i; - - switch(i)
{
case 'a': driverType = video::EDT_DIRECT3D9;break;
case 'b': driverType = video::EDT_DIRECT3D8;break;
case 'c': driverType = video::EDT_OPENGL; break;
case 'd': driverType = video::EDT_SOFTWARE; break;
case 'e': driverType = video::EDT_BURNINGSVIDEO;break;
case 'f': driverType = video::EDT_NULL; break;
default: return 1;
} - - // create device and exit if creation failed - - IrrlichtDevice *device = - createDevice(driverType, core::dimension2d(640, 480), - 16, false, false); - - if (device == 0) - return 1; // could not create selected driver. - - video::IVideoDriver* driver = device->getVideoDriver(); - scene::ISceneManager* smgr = device->getSceneManager(); - gui::IGUIEnvironment* env = device->getGUIEnvironment();
-

Now, we load an animated mesh to be displayed. As in most examples, - we'll take the fairy md2 model. The difference here: We set the shininess
- of the model to a value other than 0 which is the default value. This - enables specular highlights on the model if dynamic lighting is on. - The value influences the size of the highlights.

- - - - -
// load and display animated fairy mesh
-
-	scene::IAnimatedMeshSceneNode* fairy = smgr->addAnimatedMeshSceneNode(
-		smgr->getMesh("../../media/faerie.md2"));
-
-	if (fairy)
-	{
-		fairy->setMaterialTexture(0, driver->getTexture("../../media/faerie2.bmp")); // set diffuse texture
-		fairy->setMaterialFlag(video::EMF_LIGHTING, true); // enable dynamic lighting
-		fairy->getMaterial(0).Shininess = 20.0f; // set size of specular highlights
-		fairy->setPosition(core::vector3df(-10,0,-100));
-	}
-

To make specular highlights appear on the model, we need a dynamic - light in the scene. We add one directly in vicinity of the model. - In addition, to make the model not that dark, we set the ambient light - to gray.

- - - - -
-	// add white light
-	scene::ILightSceneNode* light = smgr->addLightSceneNode(0,
-		core::vector3df(-15,5,-105), video::SColorf(1.0f, 1.0f, 1.0f));
-
-	// set ambient light
-	driver->setAmbientLight(video::SColor(0,60,60,60));
-

The next is just some standard stuff: Add a user controlled camera - to the scene, disable mouse cursor, and add a test cube and let it - rotate to make the scene more interesting.

- - - - -
-	// add fps camera
-	scene::ICameraSceneNode* fpsCamera = smgr->addCameraSceneNodeFPS();
-	fpsCamera->setPosition(core::vector3df(-50,50,-150));
-
-	// disable mouse cursor
-	device->getCursorControl()->setVisible(false);
-
-	// create test cube
-	scene::ISceneNode* test = smgr->addCubeSceneNode(60);
-
-	// let the cube rotate and set some light settings
-	scene::ISceneNodeAnimator* anim = smgr->createRotationAnimator(
-		core::vector3df(0.3f, 0.3f,0));
-
-	test->setPosition(core::vector3df(-100,0,-100));
-	test->setMaterialFlag(video::EMF_LIGHTING, false); // disable dynamic lighting
-	test->addAnimator(anim);
-	anim->drop();
-
-	// set window caption
-	device->setWindowCaption(L"Irrlicht Engine - Render to Texture and Specular Highlights example");
-

To test out the render to texture feature, we need a render target - texture. These are not like standard textures, but need to be created - first. To create one, we call IVideoDriver::createRenderTargetTexture() - and specify the size of the texture. Please don't use sizes bigger - than the frame buffer for this, because the render target shares the - zbuffer with the frame buffer. And because we want to render the scene - not from the user camera into the texture, we add another, fixed camera - to the scene. But before we do all this, we check if the current running - driver is able to render to textures. If it is not, we simply display - a warning text.

- - - - -
// create render target
-	video::ITexture* rt = 0;
-	scene::ICameraSceneNode* fixedCam = 0;
-	
-
-	if (driver->queryFeature(video::EVDF_RENDER_TO_TARGET))
-	{
-		rt = driver->createRenderTargetTexture(core::dimension2d(256,256));
-		test->setMaterialTexture(0, rt); // set material of cube to render target
-
-		// add fixed camera
-		fixedCam = smgr->addCameraSceneNode(0, core::vector3df(10,10,-80),
-			core::vector3df(-10,10,-100));
-	}
-	else
-	{
-		// create problem text
-		gui::IGUISkin* skin = env->getSkin();
-		gui::IGUIFont* font = env->getFont("../../media/fonthaettenschweiler.bmp");
-		if (font)
-			skin->setFont(font);
-
-		gui::IGUIStaticText* text = env->addStaticText(
-			L"Your hardware or this renderer is not able to use the "\
-			L"render to texture feature. RTT Disabled.",
-			core::rect(150,20,470,60));
-
-		text->setOverrideColor(video::SColor(100,255,255,255));
-	}
-

Nearly finished. Now we need to draw everything. Every frame, we - draw the scene twice. Once from the fixed camera into the render target - texture and once as usual. When rendering into the render target, - we need to disable the visibilty of the test cube, because it has - the render target texture applied to it.
- That's, wasn't quite complicated I hope. :)

- - - - -
while(device->run())
-	if (device->isWindowActive())
-	{
-		driver->beginScene(true, true, 0);
-
-		if (rt)
-		{
-			// draw scene into render target
-			
-			// set render target texture
-			driver->setRenderTarget(rt, true, true, video::SColor(0,0,0,255));     
-
-			// make cube invisible and set fixed camera as active camera
-			test->setVisible(false);
-			smgr->setActiveCamera(fixedCam);
-
-			// draw whole scene into render buffer
-			smgr->drawAll();                 
-
-			// set back old render target
-			driver->setRenderTarget(0);      
-
-			// make the cube visible and set the user controlled camera as active one
-			test->setVisible(true);
-			smgr->setActiveCamera(fpsCamera);
-		}
-		
-		// draw scene normally
-		smgr->drawAll(); 
-		env->drawAll();
-
-		driver->endScene();
-	}
-
-	if (rt)
-		rt->drop(); // drop render target because we created if with a create() method
-
-	device->drop(); // drop device
-	return 0;
-}
-
- -

 

-
-
-

 

- - -- cgit v1.1