diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp index b0f50d29e..7042662e9 100644 --- a/Editor/Editor.cpp +++ b/Editor/Editor.cpp @@ -950,7 +950,7 @@ void EditorComponent::Load() decalTex = *(Texture2D*)Content.add("images/decal.dds"); forceFieldTex = *(Texture2D*)Content.add("images/forcefield.dds"); emitterTex = *(Texture2D*)Content.add("images/emitter.dds"); - hairTex = *(Texture2D*)Content.add("images/emitter.dds"); + hairTex = *(Texture2D*)Content.add("images/hair.dds"); cameraTex = *(Texture2D*)Content.add("images/camera.dds"); armatureTex = *(Texture2D*)Content.add("images/armature.dds"); } diff --git a/Editor/HairParticleWindow.cpp b/Editor/HairParticleWindow.cpp index 50ffd7e50..45aade731 100644 --- a/Editor/HairParticleWindow.cpp +++ b/Editor/HairParticleWindow.cpp @@ -55,7 +55,7 @@ HairParticleWindow::HairParticleWindow(wiGUI* gui) : GUI(gui) meshComboBox->SetTooltip("Choose an animation clip..."); hairWindow->AddWidget(meshComboBox); - countSlider = new wiSlider(0.1f, 100.0f, 1.0f, 100000, "Particle Count: "); + countSlider = new wiSlider(0, 100000, 1000, 100000, "Particle Count: "); countSlider->SetSize(XMFLOAT2(360, 30)); countSlider->SetPos(XMFLOAT2(x, y += step * 2)); countSlider->OnSlide([&](wiEventArgs args) { diff --git a/Editor/images/hair.dds b/Editor/images/hair.dds new file mode 100644 index 000000000..576bb57ec Binary files /dev/null and b/Editor/images/hair.dds differ diff --git a/WickedEngine/wiHairParticle.cpp b/WickedEngine/wiHairParticle.cpp index b70dd5eab..dabf46df1 100644 --- a/WickedEngine/wiHairParticle.cpp +++ b/WickedEngine/wiHairParticle.cpp @@ -249,7 +249,7 @@ void wiHairParticle::Generate(const MeshComponent& mesh) XMVECTOR P = XMVectorBaryCentric(p0, p1, p2, f, g); XMVECTOR N = XMVectorBaryCentric(n0, n1, n2, f, g); - XMVECTOR T = XMVector3Normalize(XMVectorSubtract(i % 2 == 0 ? p0 : p2, p1)); + XMVECTOR T = XMVector3Normalize(XMVectorSubtract(p0, p1)); XMStoreFloat4(&points[i].posLen, P); points[i].posLen.w = 1.0f;