int init() { // --- ezeket kell osszeszedni egy initwindowban const int screenWidth = m_window.getRealWidth(), screenHeight = m_window.getRealHeight(); const int VSYNC_ENABLED = 1, FULL_SCREEN = 0; this->render.Initialize(screenWidth, screenHeight, VSYNC_ENABLED, this->m_window.getHWnd(), FULL_SCREEN); // init file loader this->m_file_loader = new FileAssetFactory("./../../assets/rotating_cube/"); // -------------------------------------------------- // -- camera m_camera = new Camera; m_camera->SetPosition(0.0f, 0.0f, -10.0f); // -- texture TextureFromBitmap *textureLoader = new TextureFromBitmap("normap.jpg"); TextureResRef textureRes = (TextureRes*)textureLoader->NewResource(); textureLoader->Load(this, textureRes); this->m_texture = textureRes->Get(); delete textureLoader; // -- texture sampler m_textureSampler = new TextureSampler(); m_textureSampler->Initialize(render); // -- load shader ShaderLoader *vShaderLoader = new ShaderLoader("vshader", "texture.hlsl", "TextureVertexShader", ST_Vertex); ShaderResRef vShaderRef = (ShaderRes*)(vShaderLoader->NewResource()); vShaderLoader->Load(this, vShaderRef); m_vertexShader = vShaderRef->Get(); delete vShaderLoader; ShaderLoader *pShaderLoader = new ShaderLoader("pshader", "texture.hlsl", "TexturePixelShader", ST_Pixel); ShaderResRef pShaderRef = (ShaderRes*)(pShaderLoader->NewResource()); pShaderLoader->Load(this, pShaderRef); m_fragmentShader = pShaderRef->Get(); delete pShaderLoader; // -- model this->m_model = new Model; // -- generator SimpleMeshGenerator generator(render, m_vertexShader); generator["POSITION"] = (void*)GrafkitData::cubeVertices; generator["TEXCOORD"] = (void*)GrafkitData::cubeTextureUVs; generator(GrafkitData::cubeVertexLength, GrafkitData::cubeIndicesLength, GrafkitData::cubeIndices, this->m_model); // --- this->t = 0; return 0; };
int init() { // --- ezeket kell osszeszedni egy initwindowban const int screenWidth = m_window.getRealWidth(), screenHeight = m_window.getRealHeight(); const int VSYNC_ENABLED = 1, FULL_SCREEN = 0; this->render.Initialize(screenWidth, screenHeight, VSYNC_ENABLED, this->m_window.getHWnd(), FULL_SCREEN); // init file loader this->m_file_loader = new FileAssetFactory("./../../assets/postfx/"); // -------------------------------------------------- // -- camera CameraRef camera = new Camera; camera->SetPosition(0.0f, 0.0f, -10.0f); // -- texture TextureResRef texture = new TextureRes(); texture = this->Load<TextureRes>(new TextureFromBitmap("Normap.jpg")); // -- texture sampler m_textureSampler = new TextureSampler(); m_textureSampler->Initialize(render); // -- load shader m_vertexShader = Load<ShaderRes>(new ShaderLoader("vShader", "texture.hlsl", "TextureVertexShader", ST_Vertex)); m_fragmentShader = Load<ShaderRes>(new ShaderLoader("pShader", "texture.hlsl", "TexturePixelShader", ST_Pixel)); m_fxFXAA = Load<ShaderRes>(new ShaderLoader("xFXAA", "fxaa.hlsl", "FXAA", ST_Pixel)); m_fxFishEye = Load<ShaderRes>(new ShaderLoader("xFishEye", "fisheye.hlsl", "fisheyeProc", ST_Pixel)); // m_fxVhs = Load<ShaderRes>(new ShaderLoader("xVhs", "vhstape.hlsl", "TextureVertexShader", ST_Pixel)); // this->DoPrecalc(); // -- model ModelRef model = new Model; model->SetMaterial(new MaterialBase); model->GetMaterial()->AddTexture(texture, "diffuse"); SimpleMeshGenerator generator(render, m_vertexShader); generator["POSITION"] = (void*)GrafkitData::cubeVertices; generator["TEXCOORD"] = (void*)GrafkitData::cubeTextureUVs; generator(GrafkitData::cubeVertexLength, GrafkitData::cubeIndicesLength, GrafkitData::cubeIndices, model); // -- setup scene scene = new Scene(); ActorRef cameraActor = new Actor(); cameraActor->AddEntity(camera); ActorRef modelActor = new Actor(); modelActor->AddEntity(model); ActorRef modelActorL = new Actor(); modelActorL->AddEntity(model); modelActorL->Matrix().Translate(3, 0, 0); modelActor->AddChild(modelActorL); ActorRef modelActorR = new Actor(); modelActorR->AddEntity(model); modelActorR->Matrix().Translate(-3, 0, 0); modelActor->AddChild(modelActorR); ActorRef modelActorU = new Actor(); modelActorU->AddEntity(model); modelActorU->Matrix().Translate(0, 3, 0); modelActor->AddChild(modelActorU); ActorRef modelActorD = new Actor(); modelActorD->AddEntity(model); modelActorD->Matrix().Translate(0, -3, 0); modelActor->AddChild(modelActorD); ActorRef modelActorF = new Actor(); modelActorF->AddEntity(model); modelActorF->Matrix().Translate(0, 0, 3); modelActor->AddChild(modelActorF); ActorRef modelActorB = new Actor(); modelActorB->AddEntity(model); modelActorB->Matrix().Translate(0, 0, -3); modelActor->AddChild(modelActorB); // ActorRef lightActor = new Actor(); lightActor->AddEntity(light); ActorRef rootActor = new Actor(); rootActor->AddChild(cameraActor); rootActor->AddChild(modelActor); m_rootActor = rootActor; scene->SetRootNode(rootActor); scene->SetCameraNode(cameraActor); // scene->AddLightNode(lightActor); scene->SetVShader(m_vertexShader); scene->SetFShader(m_fragmentShader); // -- setup postfx size_t k = 0; m_postfx = new EffectComposer(); m_postfx->Initialize(render); k = m_postfx->AddPass(new EffectPass()); m_postfx->GetEffect(k)->Initialize(render, m_fxFXAA); k = m_postfx->AddPass(new EffectPass()); m_postfx->GetEffect(k)->Initialize(render, m_fxFishEye); // k = m_postfx->AddPass(new EffectPass()); m_postfx->GetEffect(k)->Initialize(render, m_fxVhs); // k = m_postfx->AddPass(new EffectPass()); m_postfx->GetEffect(k)->Initialize(render, sahder); // k = m_postfx->AddPass(new EffectPass()); m_postfx->GetEffect(k)->Initialize(render, sahder); // k = m_postfx->AddPass(new EffectPass()); m_postfx->GetEffect(k)->Initialize(render, sahder); // --- return 0; };