Update main.cpp
This commit is contained in:
parent
74534236ef
commit
250044b47a
|
|
@ -2,6 +2,7 @@
|
||||||
#include <Nazara/Core/ECS.hpp>
|
#include <Nazara/Core/ECS.hpp>
|
||||||
#include <Nazara/Platform.hpp>
|
#include <Nazara/Platform.hpp>
|
||||||
#include <Nazara/Graphics.hpp>
|
#include <Nazara/Graphics.hpp>
|
||||||
|
#include <Nazara/Graphics/TextSprite.hpp>
|
||||||
#include <Nazara/Graphics/Components.hpp>
|
#include <Nazara/Graphics/Components.hpp>
|
||||||
#include <Nazara/Graphics/Systems.hpp>
|
#include <Nazara/Graphics/Systems.hpp>
|
||||||
#include <Nazara/Math/PidController.hpp>
|
#include <Nazara/Math/PidController.hpp>
|
||||||
|
|
@ -75,7 +76,7 @@ int main()
|
||||||
materialPass->EnableDepthClamp(true);
|
materialPass->EnableDepthClamp(true);
|
||||||
materialPass->EnableFaceCulling(true);
|
materialPass->EnableFaceCulling(true);
|
||||||
|
|
||||||
material->AddPass("DepthPass", depthPass);
|
//material->AddPass("DepthPass", depthPass);
|
||||||
material->AddPass("ForwardPass", materialPass);
|
material->AddPass("ForwardPass", materialPass);
|
||||||
|
|
||||||
Nz::TextureSamplerInfo samplerInfo;
|
Nz::TextureSamplerInfo samplerInfo;
|
||||||
|
|
@ -98,17 +99,67 @@ int main()
|
||||||
for (std::size_t i = 0; i < model->GetSubMeshCount(); ++i)
|
for (std::size_t i = 0; i < model->GetSubMeshCount(); ++i)
|
||||||
model->SetMaterial(i, material);
|
model->SetMaterial(i, material);
|
||||||
|
|
||||||
|
std::shared_ptr<Nz::Material> spriteMaterial = std::make_shared<Nz::Material>();
|
||||||
|
|
||||||
|
/*std::shared_ptr<Nz::MaterialPass> spriteDepthPass = std::make_shared<Nz::MaterialPass>(Nz::DepthMaterial::GetSettings());
|
||||||
|
spriteDepthPass->EnableDepthBuffer(true);
|
||||||
|
spriteDepthPass->EnableDepthClamp(true);
|
||||||
|
//spriteDepthPass->EnableFaceCulling(true);*/
|
||||||
|
|
||||||
|
std::shared_ptr<Nz::MaterialPass> spriteMaterialPass = std::make_shared<Nz::MaterialPass>(Nz::BasicMaterial::GetSettings());
|
||||||
|
spriteMaterialPass->EnableDepthBuffer(true);
|
||||||
|
spriteMaterialPass->EnableDepthWrite(false);
|
||||||
|
spriteMaterialPass->EnableDepthClamp(true);
|
||||||
|
//spriteMaterialPass->EnableFaceCulling(true);
|
||||||
|
|
||||||
|
spriteMaterialPass->EnableFlag(Nz::MaterialPassFlag::Transparent);
|
||||||
|
|
||||||
|
spriteMaterialPass->EnableBlending(true);
|
||||||
|
spriteMaterialPass->SetBlendEquation(Nz::BlendEquation::Add, Nz::BlendEquation::Add);
|
||||||
|
spriteMaterialPass->SetBlendFunc(Nz::BlendFunc::SrcAlpha, Nz::BlendFunc::InvSrcAlpha, Nz::BlendFunc::One, Nz::BlendFunc::Zero);
|
||||||
|
|
||||||
|
//Nz::BasicMaterial basicSpriteMat(*spriteMaterialPass);
|
||||||
|
//basicSpriteMat.SetDiffuseMap(Nz::Texture::LoadFromFile(resourceDir / "dev_grey.png", texParams));
|
||||||
|
|
||||||
|
//spriteMaterial->AddPass("DepthPass", spriteDepthPass);
|
||||||
|
spriteMaterial->AddPass("ForwardPass", spriteMaterialPass);
|
||||||
|
|
||||||
|
std::shared_ptr<Nz::TextSprite> sprite = std::make_shared<Nz::TextSprite>(spriteMaterial);
|
||||||
|
|
||||||
|
std::u32string str = Nz::ToUtf32String("Dès Noël, où un zéphyr haï me vêt de glaçons würmiens, je dîne d’exquis rôtis de bœuf au kir, à l’aÿ d’âge mûr, &cætera");
|
||||||
|
|
||||||
|
Nz::RichTextDrawer richText;
|
||||||
|
unsigned int size = 16;
|
||||||
|
for (char32_t character : str)
|
||||||
|
{
|
||||||
|
richText.SetDefaultCharacterSize(size);
|
||||||
|
richText.AppendText(Nz::FromUtf32String(std::u32string_view(&character, 1)));
|
||||||
|
|
||||||
|
size += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
sprite->Update(richText, 0.02f);
|
||||||
|
|
||||||
Nz::Vector2ui windowSize = window.GetSize();
|
Nz::Vector2ui windowSize = window.GetSize();
|
||||||
|
|
||||||
Nz::VertexMapper vertexMapper(*spaceshipMesh->GetSubMesh(0), Nz::BufferAccess::ReadOnly);
|
Nz::VertexMapper vertexMapper(*spaceshipMesh->GetSubMesh(0), Nz::BufferAccess::ReadOnly);
|
||||||
Nz::SparsePtr<Nz::Vector3f> vertices = vertexMapper.GetComponentPtr<Nz::Vector3f>(Nz::VertexComponent::Position);
|
Nz::SparsePtr<Nz::Vector3f> vertices = vertexMapper.GetComponentPtr<Nz::Vector3f>(Nz::VertexComponent::Position);
|
||||||
|
|
||||||
|
|
||||||
entt::registry registry;
|
entt::registry registry;
|
||||||
|
entt::registry registry2D;
|
||||||
|
|
||||||
Nz::Physics3DSystem physSytem(registry);
|
Nz::Physics3DSystem physSytem(registry);
|
||||||
Nz::RenderSystem renderSystem(registry);
|
Nz::RenderSystem renderSystem(registry);
|
||||||
|
Nz::RenderSystem renderSystem2D(registry2D);
|
||||||
|
|
||||||
|
entt::entity viewer2D = registry2D.create();
|
||||||
|
registry2D.emplace<Nz::NodeComponent>(viewer2D);
|
||||||
|
registry2D.emplace<Nz::CameraComponent>(viewer2D, window.GetRenderTarget(), Nz::ProjectionType::Orthographic);
|
||||||
|
|
||||||
|
entt::entity text2D = registry2D.create();
|
||||||
|
|
||||||
|
registry2D.emplace<Nz::GraphicsComponent>(text2D).AttachRenderable(sprite);
|
||||||
|
registry2D.emplace<Nz::NodeComponent>(text2D).SetPosition(Nz::Vector3f(0.f, 200.f, 0.f));
|
||||||
|
|
||||||
entt::entity viewer = registry.create();
|
entt::entity viewer = registry.create();
|
||||||
registry.emplace<Nz::NodeComponent>(viewer);
|
registry.emplace<Nz::NodeComponent>(viewer);
|
||||||
|
|
@ -143,6 +194,7 @@ int main()
|
||||||
{
|
{
|
||||||
auto& entityGfx = registry.emplace<Nz::GraphicsComponent>(playerEntity);
|
auto& entityGfx = registry.emplace<Nz::GraphicsComponent>(playerEntity);
|
||||||
entityGfx.AttachRenderable(model);
|
entityGfx.AttachRenderable(model);
|
||||||
|
entityGfx.AttachRenderable(sprite);
|
||||||
|
|
||||||
auto& entityNode = registry.emplace<Nz::NodeComponent>(playerEntity);
|
auto& entityNode = registry.emplace<Nz::NodeComponent>(playerEntity);
|
||||||
entityNode.SetPosition(Nz::Vector3f(12.5f, 0.f, 25.f));
|
entityNode.SetPosition(Nz::Vector3f(12.5f, 0.f, 25.f));
|
||||||
|
|
@ -156,19 +208,19 @@ int main()
|
||||||
headingNode.SetParent(registry, playerEntity);
|
headingNode.SetParent(registry, playerEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
registry.get<Nz::NodeComponent>(viewer).SetParent(registry, headingEntity);
|
registry.get<Nz::NodeComponent>(viewer).SetParent(registry, headingEntity);
|
||||||
registry.get<Nz::NodeComponent>(viewer).SetPosition(Nz::Vector3f::Backward() * 2.5f + Nz::Vector3f::Up() * 1.f);
|
registry.get<Nz::NodeComponent>(viewer).SetPosition(Nz::Vector3f::Backward() * 2.5f + Nz::Vector3f::Up() * 1.f);
|
||||||
|
|
||||||
for (std::size_t x = 0; x < 10; ++x)
|
for (std::size_t x = 0; x < 1; ++x)
|
||||||
{
|
{
|
||||||
for (std::size_t y = 0; y < 10; ++y)
|
for (std::size_t y = 0; y < 1; ++y)
|
||||||
{
|
{
|
||||||
for (std::size_t z = 0; z < 10; ++z)
|
for (std::size_t z = 0; z < 1; ++z)
|
||||||
{
|
{
|
||||||
entt::entity entity = registry.create();
|
entt::entity entity = registry.create();
|
||||||
auto& entityGfx = registry.emplace<Nz::GraphicsComponent>(entity);
|
auto& entityGfx = registry.emplace<Nz::GraphicsComponent>(entity);
|
||||||
entityGfx.AttachRenderable(model);
|
entityGfx.AttachRenderable(model);
|
||||||
|
entityGfx.AttachRenderable(sprite);
|
||||||
|
|
||||||
auto& entityNode = registry.emplace<Nz::NodeComponent>(entity);
|
auto& entityNode = registry.emplace<Nz::NodeComponent>(entity);
|
||||||
entityNode.SetPosition(Nz::Vector3f(x * 2.f, y * 1.5f, z * 2.f));
|
entityNode.SetPosition(Nz::Vector3f(x * 2.f, y * 1.5f, z * 2.f));
|
||||||
|
|
@ -333,6 +385,7 @@ int main()
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
renderSystem.Render(registry, frame);
|
renderSystem.Render(registry, frame);
|
||||||
|
//renderSystem2D.Render(registry2D, frame);
|
||||||
|
|
||||||
frame.Present();
|
frame.Present();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue