mirror of
https://github.com/litruv/UE-MaterialSnippets.git
synced 2026-07-24 01:06:02 +10:00
Initial
This commit is contained in:
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"liveServer.settings.port": 5501
|
||||
}
|
||||
37
index.html
Normal file
37
index.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Unreal Engine Material Library</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div class="flex-container">
|
||||
<div class="container">
|
||||
<header>
|
||||
<div class="header-content">
|
||||
<h1><span class="highlight">UE</span> Material Snippets</h1>
|
||||
</div>
|
||||
<div class="filter-container">
|
||||
<div class="search-box">
|
||||
<input type="text" data-search placeholder="Search materials...">
|
||||
</div>
|
||||
<div class="categories-filter" data-categories></div>
|
||||
</div>
|
||||
</header>
|
||||
<main data-material-grid></main>
|
||||
</div>
|
||||
<footer>
|
||||
<div class="footer-content">
|
||||
<p>© 2025 Max Litruv Boonzaayer. All rights reserved.</p>
|
||||
<nav>
|
||||
<a href="https://lit.ruv.wtf" target="_blank">Main Page</a>
|
||||
</nav>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<script src="main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
142
main.js
Normal file
142
main.js
Normal file
@@ -0,0 +1,142 @@
|
||||
document.addEventListener('DOMContentLoaded', async () => {
|
||||
const grid = document.querySelector('[data-material-grid]');
|
||||
const searchInput = document.querySelector('[data-search]');
|
||||
const categoriesContainer = document.querySelector('[data-categories]');
|
||||
|
||||
let materialLibrary = [];
|
||||
try {
|
||||
const response = await fetch('materials.json');
|
||||
const data = await response.json();
|
||||
materialLibrary = data.materials;
|
||||
|
||||
const categories = [...new Set(materialLibrary.flatMap(m => m.categories))].sort();
|
||||
|
||||
categoriesContainer.innerHTML = categories.map(category => `
|
||||
<button class="category-button" data-category="${category}">
|
||||
${category.charAt(0).toUpperCase() + category.slice(1)}
|
||||
</button>
|
||||
`).join('');
|
||||
|
||||
const categoryButtons = categoriesContainer.querySelectorAll('.category-button');
|
||||
categoryButtons.forEach(button => {
|
||||
button.addEventListener('click', () => {
|
||||
button.classList.toggle('active');
|
||||
filterMaterials();
|
||||
});
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error loading materials:', error);
|
||||
grid.innerHTML = '<p class="error-message">Error loading materials library.</p>';
|
||||
return;
|
||||
}
|
||||
|
||||
function renderMaterials(materials) {
|
||||
grid.innerHTML = materials.map(material => `
|
||||
<div class="material-card show" data-material="${material.name.toLowerCase().replace(/\s+/g, '-')}">
|
||||
<img class="material-preview" src="${material.preview}" alt="${material.name}">
|
||||
<div class="material-info">
|
||||
<h3>${material.name}</h3>
|
||||
<p>${material.description}</p>
|
||||
<div class="material-tags">
|
||||
${material.categories.map(cat => `<span class="tag" data-tag="${cat}">${cat}</span>`).join(' ')}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`).join('');
|
||||
|
||||
const tags = document.querySelectorAll('.tag');
|
||||
tags.forEach(tag => {
|
||||
tag.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
const category = tag.dataset.tag;
|
||||
const categoryButton = [...document.querySelectorAll('.category-button')]
|
||||
.find(button => button.dataset.category === category);
|
||||
if (categoryButton) {
|
||||
categoryButton.classList.add('active');
|
||||
filterMaterials();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
reSortMasonry();
|
||||
}
|
||||
|
||||
async function loadSnippet(snippetPath) {
|
||||
try {
|
||||
const response = await fetch(snippetPath);
|
||||
return await response.text();
|
||||
} catch (error) {
|
||||
console.error('Error loading snippet:', error);
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
async function filterMaterials() {
|
||||
const searchTerm = searchInput.value.toLowerCase();
|
||||
const selectedCategories = [...document.querySelectorAll('.category-button.active')]
|
||||
.map(button => button.dataset.category);
|
||||
|
||||
const filtered = materialLibrary.filter(material => {
|
||||
const matchesSearch = material.name.toLowerCase().includes(searchTerm) ||
|
||||
material.description.toLowerCase().includes(searchTerm) ||
|
||||
material.categories.some(cat => cat.toLowerCase().includes(searchTerm));
|
||||
const matchesCategory = selectedCategories.every(cat => material.categories.includes(cat));
|
||||
return matchesSearch && matchesCategory;
|
||||
});
|
||||
|
||||
const allCards = document.querySelectorAll('.material-card');
|
||||
allCards.forEach(card => {
|
||||
card.classList.add('hide');
|
||||
});
|
||||
|
||||
setTimeout(() => {
|
||||
renderMaterials(filtered);
|
||||
}, 300);
|
||||
}
|
||||
|
||||
function reSortMasonry() {
|
||||
const masonryItems = document.querySelectorAll('.material-card');
|
||||
let transitionCount = masonryItems.length;
|
||||
|
||||
masonryItems.forEach(item => {
|
||||
item.style.display = 'inline-block';
|
||||
item.addEventListener('transitionend', () => {
|
||||
transitionCount--;
|
||||
if (transitionCount === 0) {
|
||||
grid.style.columnCount = 0;
|
||||
grid.style.columnCount = 4;
|
||||
}
|
||||
}, { once: true });
|
||||
});
|
||||
}
|
||||
|
||||
grid.addEventListener('click', async (e) => {
|
||||
const card = e.target.closest('.material-card');
|
||||
if (card && !e.target.classList.contains('tag')) {
|
||||
const materialName = card.dataset.material;
|
||||
const material = materialLibrary.find(m =>
|
||||
m.name.toLowerCase().replace(/\s+/g, '-') === materialName
|
||||
);
|
||||
|
||||
const snippet = await loadSnippet(material.snippet);
|
||||
navigator.clipboard.writeText(snippet);
|
||||
|
||||
const notification = document.createElement('div');
|
||||
notification.className = 'copy-notification';
|
||||
notification.textContent = 'Copied!';
|
||||
notification.style.left = `${e.clientX}px`;
|
||||
notification.style.top = `${e.clientY - 30}px`;
|
||||
|
||||
document.body.appendChild(notification);
|
||||
setTimeout(() => notification.remove(), 1000);
|
||||
}
|
||||
});
|
||||
|
||||
grid.addEventListener('dragstart', (e) => {
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
searchInput.addEventListener('input', filterMaterials);
|
||||
|
||||
renderMaterials(materialLibrary);
|
||||
});
|
||||
11
materials.json
Normal file
11
materials.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"materials": [
|
||||
{
|
||||
"name": "Vinette",
|
||||
"categories": ["photo", "fx", "vintage"],
|
||||
"preview": "/thumbnails/vinette.png",
|
||||
"snippet": "snippets/vinette.txt",
|
||||
"description": "Adds a subtle darkened border around the edges of the image for a vintage effect."
|
||||
}
|
||||
]
|
||||
}
|
||||
216
snippets/vinette.txt
Normal file
216
snippets/vinette.txt
Normal file
@@ -0,0 +1,216 @@
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_26" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_26'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionConstant Name="MaterialExpressionConstant_0" ExportPath="/Script/Engine.MaterialExpressionConstant'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_26.MaterialExpressionConstant_0'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionConstant_0" ExportPath="/Script/Engine.MaterialExpressionConstant'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_26.MaterialExpressionConstant_0'"
|
||||
R=0.500000
|
||||
MaterialExpressionEditorX=340
|
||||
MaterialExpressionEditorY=-913
|
||||
MaterialExpressionGuid=AAA1817742CD1A6F40CE05B5ABAB0FAE
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionConstant'MaterialExpressionConstant_0'"
|
||||
NodePosX=340
|
||||
NodePosY=-913
|
||||
NodeGuid=FE8B54F54BA1C7E216E7D89550CAE532
|
||||
CustomProperties Pin (PinId=F4CE38AA4369C3FF936AE9964798BD5B,PinName="Value",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.5",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=432DEF544800B87269823D8DDFA716ED,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_27 D3A48C284532E6E6BFDF3B9CFE3B3272,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_27" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_27'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionDistance Name="MaterialExpressionDistance_0" ExportPath="/Script/Engine.MaterialExpressionDistance'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_27.MaterialExpressionDistance_0'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionDistance_0" ExportPath="/Script/Engine.MaterialExpressionDistance'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_27.MaterialExpressionDistance_0'"
|
||||
A=(Expression="/Script/Engine.MaterialExpressionConstant'MaterialGraphNode_26.MaterialExpressionConstant_0'")
|
||||
B=(Expression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialGraphNode_28.MaterialExpressionTextureCoordinate_0'")
|
||||
MaterialExpressionEditorX=496
|
||||
MaterialExpressionEditorY=-896
|
||||
MaterialExpressionGuid=3F00A1CB44F89E5DE91D518E1B29228A
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionDistance'MaterialExpressionDistance_0'"
|
||||
NodePosX=496
|
||||
NodePosY=-896
|
||||
NodeGuid=95C0675F4B22E38D3CD284B9B536BA6C
|
||||
CustomProperties Pin (PinId=D3A48C284532E6E6BFDF3B9CFE3B3272,PinName="A",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_26 432DEF544800B87269823D8DDFA716ED,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=C48447B54F5EEA4F3C12198004EBD6CA,PinName="B",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_28 952015E541117C8A208706B6071DBD08,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=EB63485548CF1F3206C4CB96F3E31056,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_30 23E7FB1C43D9DCF5D1E1C49A6EDEF3BF,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_28" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_28'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionTextureCoordinate Name="MaterialExpressionTextureCoordinate_0" ExportPath="/Script/Engine.MaterialExpressionTextureCoordinate'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_28.MaterialExpressionTextureCoordinate_0'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionTextureCoordinate_0" ExportPath="/Script/Engine.MaterialExpressionTextureCoordinate'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_28.MaterialExpressionTextureCoordinate_0'"
|
||||
MaterialExpressionEditorX=288
|
||||
MaterialExpressionEditorY=-832
|
||||
MaterialExpressionGuid=B35A92024A9217BA97688BAF26229395
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionTextureCoordinate'MaterialExpressionTextureCoordinate_0'"
|
||||
NodePosX=288
|
||||
NodePosY=-832
|
||||
AdvancedPinDisplay=Hidden
|
||||
NodeGuid=5D40B5364A27D73A7C0F99BDB186E143
|
||||
CustomProperties Pin (PinId=51A4347F4919E221EE69D7BABCCF8792,PinName="Coordinate Index",PinType.PinCategory="optional",PinType.PinSubCategory="int",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=8503E5154EC3DBD4CCB4EE8BC646EB2E,PinName="UTiling",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=2C36A892446621A3E8FECE8D68EB4ADA,PinName="VTiling",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=F211FAF14837B0018B9CD682321CC40C,PinName="Un Mirror U",PinType.PinCategory="optional",PinType.PinSubCategory="bool",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=1CCF89FC45F63AB38A188B90FBE507E1,PinName="Un Mirror V",PinType.PinCategory="optional",PinType.PinSubCategory="bool",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="false",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=952015E541117C8A208706B6071DBD08,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_27 C48447B54F5EEA4F3C12198004EBD6CA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_29" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_29'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_2" ExportPath="/Script/Engine.MaterialExpressionScalarParameter'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_29.MaterialExpressionScalarParameter_2'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionScalarParameter_2" ExportPath="/Script/Engine.MaterialExpressionScalarParameter'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_29.MaterialExpressionScalarParameter_2'"
|
||||
DefaultValue=0.500000
|
||||
ParameterName="Distance"
|
||||
ExpressionGUID=2B7236524D7349398A0F81A83A70B671
|
||||
MaterialExpressionEditorX=496
|
||||
MaterialExpressionEditorY=-784
|
||||
MaterialExpressionGuid=54F80AF64BC24F36C400E7A1CC7F28D5
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_2'"
|
||||
NodePosX=496
|
||||
NodePosY=-784
|
||||
bCanRenameNode=True
|
||||
NodeGuid=ED044C4049A13A26696505AB303C4DD7
|
||||
CustomProperties Pin (PinId=532CED024F19E97CCDAC4EB15DA1FB1F,PinName="Default Value",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.5",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=1ED4F264486B3CD29D38C7940242A570,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_31 04561F374058BBE1694ECE86253CCE13,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_30" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_30'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionOneMinus Name="MaterialExpressionOneMinus_0" ExportPath="/Script/Engine.MaterialExpressionOneMinus'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_30.MaterialExpressionOneMinus_0'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionOneMinus_0" ExportPath="/Script/Engine.MaterialExpressionOneMinus'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_30.MaterialExpressionOneMinus_0'"
|
||||
Input=(Expression="/Script/Engine.MaterialExpressionDistance'MaterialGraphNode_27.MaterialExpressionDistance_0'")
|
||||
MaterialExpressionEditorX=608
|
||||
MaterialExpressionEditorY=-880
|
||||
MaterialExpressionGuid=315BA9124B4EC3CC372E669F7C13AE04
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionOneMinus'MaterialExpressionOneMinus_0'"
|
||||
NodePosX=608
|
||||
NodePosY=-880
|
||||
NodeGuid=EE0C20BA405FFC03077A84A0947F623D
|
||||
CustomProperties Pin (PinId=23E7FB1C43D9DCF5D1E1C49A6EDEF3BF,PinName="Input",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_27 EB63485548CF1F3206C4CB96F3E31056,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=40B78CAC42CFCAA9F2BF1690A2A7E549,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_31 53E268B740B91B7E8E653BBD2190BA7F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_31" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_31'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionMultiply Name="MaterialExpressionMultiply_0" ExportPath="/Script/Engine.MaterialExpressionMultiply'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_31.MaterialExpressionMultiply_0'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionMultiply_0" ExportPath="/Script/Engine.MaterialExpressionMultiply'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_31.MaterialExpressionMultiply_0'"
|
||||
A=(Expression="/Script/Engine.MaterialExpressionOneMinus'MaterialGraphNode_30.MaterialExpressionOneMinus_0'")
|
||||
B=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_29.MaterialExpressionScalarParameter_2'")
|
||||
MaterialExpressionEditorX=736
|
||||
MaterialExpressionEditorY=-880
|
||||
MaterialExpressionGuid=222146AA45E34DE170FEE792143EF237
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionMultiply'MaterialExpressionMultiply_0'"
|
||||
NodePosX=736
|
||||
NodePosY=-880
|
||||
NodeGuid=BD23D3F04F43F35A72AF4C9AAD98E32B
|
||||
CustomProperties Pin (PinId=53E268B740B91B7E8E653BBD2190BA7F,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",LinkedTo=(MaterialGraphNode_30 40B78CAC42CFCAA9F2BF1690A2A7E549,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=04561F374058BBE1694ECE86253CCE13,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.0",LinkedTo=(MaterialGraphNode_29 1ED4F264486B3CD29D38C7940242A570,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=DC67F25A46D513596408EEBC44609849,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_32 81866F1C4B06B12C927B04941915BB62,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_32" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_32'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionMaterialFunctionCall Name="MaterialExpressionMaterialFunctionCall_2" ExportPath="/Script/Engine.MaterialExpressionMaterialFunctionCall'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_32.MaterialExpressionMaterialFunctionCall_2'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionMaterialFunctionCall_2" ExportPath="/Script/Engine.MaterialExpressionMaterialFunctionCall'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_32.MaterialExpressionMaterialFunctionCall_2'"
|
||||
MaterialFunction="/Script/Engine.MaterialFunction'/Engine/Functions/Engine_MaterialFunctions01/ImageAdjustment/CheapContrast.CheapContrast'"
|
||||
FunctionInputs(0)=(ExpressionInputId=95C9DA0E48D34168E34AD3A607BAA34E,Input=(Expression="/Script/Engine.MaterialExpressionMultiply'MaterialGraphNode_31.MaterialExpressionMultiply_0'",InputName="In"))
|
||||
FunctionInputs(1)=(ExpressionInputId=3C3E177E485D8FFFC35D1482F0A20020,Input=(Expression="/Script/Engine.MaterialExpressionScalarParameter'MaterialGraphNode_33.MaterialExpressionScalarParameter_3'",InputName="Contrast"))
|
||||
FunctionOutputs(0)=(ExpressionOutputId=5067ED8C4A2EFE82DB33F99EBE37E80E,Output=(OutputName="Result"))
|
||||
MaterialExpressionEditorX=960
|
||||
MaterialExpressionEditorY=-880
|
||||
MaterialExpressionGuid=4417091447D4325FE05D1397C91F1AD5
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
Outputs(0)=(OutputName="Result")
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionMaterialFunctionCall'MaterialExpressionMaterialFunctionCall_2'"
|
||||
NodePosX=960
|
||||
NodePosY=-880
|
||||
NodeGuid=CB3F8AC24845CB6C6566B7BABFF8424F
|
||||
CustomProperties Pin (PinId=81866F1C4B06B12C927B04941915BB62,PinName="In (S)",PinType.PinCategory="required",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_31 DC67F25A46D513596408EEBC44609849,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=9F2CBBF14EDD321B89136F82DE8BAF2F,PinName="Contrast (S)",PinType.PinCategory="optional",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_33 218F2E0E433460891A75E7B6A13DFE01,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=0191193A45DDBFFECC9277946D5D530C,PinName="Result",Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_34 1F39C022485E879B336D128A84DD55B8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_33" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_33'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionScalarParameter Name="MaterialExpressionScalarParameter_3" ExportPath="/Script/Engine.MaterialExpressionScalarParameter'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_33.MaterialExpressionScalarParameter_3'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionScalarParameter_3" ExportPath="/Script/Engine.MaterialExpressionScalarParameter'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_33.MaterialExpressionScalarParameter_3'"
|
||||
DefaultValue=0.250000
|
||||
ParameterName="Sharpness"
|
||||
ExpressionGUID=D7EC8DA445E6553F80CD21BC9575E46D
|
||||
MaterialExpressionEditorX=752
|
||||
MaterialExpressionEditorY=-784
|
||||
MaterialExpressionGuid=9F0EAFEB4459BB0291431C9BD1C99287
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionScalarParameter'MaterialExpressionScalarParameter_3'"
|
||||
NodePosX=752
|
||||
NodePosY=-784
|
||||
bCanRenameNode=True
|
||||
NodeGuid=9406676442A2D05DCF1CBB961FE4D605
|
||||
CustomProperties Pin (PinId=CED3B8B74FF419FBC7B95FAB36BEA842,PinName="Default Value",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.25",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=218F2E0E433460891A75E7B6A13DFE01,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_32 9F2CBBF14EDD321B89136F82DE8BAF2F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_34" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_34'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionLinearInterpolate Name="MaterialExpressionLinearInterpolate_1" ExportPath="/Script/Engine.MaterialExpressionLinearInterpolate'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_34.MaterialExpressionLinearInterpolate_1'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionLinearInterpolate_1" ExportPath="/Script/Engine.MaterialExpressionLinearInterpolate'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_34.MaterialExpressionLinearInterpolate_1'"
|
||||
A=(Expression="/Script/Engine.MaterialExpressionConstant3Vector'MaterialGraphNode_35.MaterialExpressionConstant3Vector_0'",Mask=1,MaskR=1,MaskG=1,MaskB=1)
|
||||
B=(Expression="/Script/Engine.MaterialExpressionReroute'MaterialGraphNode_Knot_1.MaterialExpressionReroute_0'")
|
||||
Alpha=(Expression="/Script/Engine.MaterialExpressionMaterialFunctionCall'MaterialGraphNode_32.MaterialExpressionMaterialFunctionCall_2'")
|
||||
MaterialExpressionEditorX=1232
|
||||
MaterialExpressionEditorY=-1120
|
||||
MaterialExpressionGuid=8AD0EB8E4B86C27657F3BB8F186F37C1
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
bCollapsed=False
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionLinearInterpolate'MaterialExpressionLinearInterpolate_1'"
|
||||
NodePosX=1232
|
||||
NodePosY=-1120
|
||||
NodeGuid=BBE61B284AB0E31BB171838F46763A90
|
||||
CustomProperties Pin (PinId=A071FD7642842885AE9AEEAE330D5F01,PinName="A",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0",LinkedTo=(MaterialGraphNode_35 7E672C5D45B57C7C895E1F81C6CC986B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=5B3CD56246F96E04D775069F3B0A076E,PinName="B",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="1.0",LinkedTo=(MaterialGraphNode_Knot_1 5820BB354A8804F4FB20B8B8A1A82471,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=1F39C022485E879B336D128A84DD55B8,PinName="Alpha",PinType.PinCategory="optional",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.5",LinkedTo=(MaterialGraphNode_32 0191193A45DDBFFECC9277946D5D530C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=A67F60E548397C3B7C2526A01F9FCB7E,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode Name="MaterialGraphNode_35" ExportPath="/Script/UnrealEd.MaterialGraphNode'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_35'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionConstant3Vector Name="MaterialExpressionConstant3Vector_0" ExportPath="/Script/Engine.MaterialExpressionConstant3Vector'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_35.MaterialExpressionConstant3Vector_0'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionConstant3Vector_0" ExportPath="/Script/Engine.MaterialExpressionConstant3Vector'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_35.MaterialExpressionConstant3Vector_0'"
|
||||
MaterialExpressionEditorX=912
|
||||
MaterialExpressionEditorY=-1088
|
||||
MaterialExpressionGuid=C588047F4638A09FAE8FD49450BBB679
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionConstant3Vector'MaterialExpressionConstant3Vector_0'"
|
||||
NodePosX=912
|
||||
NodePosY=-1088
|
||||
NodeGuid=FB721C8B4D2EC26FC474B0ACE8E10233
|
||||
CustomProperties Pin (PinId=913DBF164615A5B5D3B95CA7E4AE847F,PinName="Constant",PinType.PinCategory="optional",PinType.PinSubCategory="rgb",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,DefaultValue="0.0,0.0,0.0",PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=True,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=7E672C5D45B57C7C895E1F81C6CC986B,PinName="Output",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_34 A071FD7642842885AE9AEEAE330D5F01,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=2A13615F4E9317DBC29B5B82EE96C191,PinName="Output2",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="red",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=E9461345481617D627A82BB17123A3D6,PinName="Output3",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="green",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=8205F1094EF48646EC9C578B86310EE3,PinName="Output4",PinFriendlyName=NSLOCTEXT("MaterialGraphNode", "Space", " "),Direction="EGPD_Output",PinType.PinCategory="mask",PinType.PinSubCategory="blue",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
Begin Object Class=/Script/UnrealEd.MaterialGraphNode_Knot Name="MaterialGraphNode_Knot_1" ExportPath="/Script/UnrealEd.MaterialGraphNode_Knot'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_Knot_1'"
|
||||
Begin Object Class=/Script/Engine.MaterialExpressionReroute Name="MaterialExpressionReroute_0" ExportPath="/Script/Engine.MaterialExpressionReroute'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_Knot_1.MaterialExpressionReroute_0'"
|
||||
End Object
|
||||
Begin Object Name="MaterialExpressionReroute_0" ExportPath="/Script/Engine.MaterialExpressionReroute'/Engine/Transient.PreviewMaterial_2:MaterialGraph_0.MaterialGraphNode_Knot_1.MaterialExpressionReroute_0'"
|
||||
MaterialExpressionEditorX=1040
|
||||
MaterialExpressionEditorY=-1168
|
||||
MaterialExpressionGuid=0F6CA9144890D149ADDD98820E4745F0
|
||||
Material="/Script/UnrealEd.PreviewMaterial'/Engine/Transient.PreviewMaterial_2'"
|
||||
Desc="Input"
|
||||
End Object
|
||||
MaterialExpression="/Script/Engine.MaterialExpressionReroute'MaterialExpressionReroute_0'"
|
||||
NodePosX=1040
|
||||
NodePosY=-1168
|
||||
bCommentBubbleVisible=True
|
||||
bCanRenameNode=False
|
||||
NodeComment="Input"
|
||||
NodeGuid=334A8A304E1CF5FB4264AA8E3DB67BDF
|
||||
CustomProperties Pin (PinId=6007152B4DCD774B77A2CCA8FFDC2F95,PinName="InputPin",PinType.PinCategory="wildcard",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)
|
||||
CustomProperties Pin (PinId=5820BB354A8804F4FB20B8B8A1A82471,PinName="OutputPin",Direction="EGPD_Output",PinType.PinCategory="wildcard",PinType.PinSubCategory="",PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PinType.bSerializeAsSinglePrecisionFloat=False,LinkedTo=(MaterialGraphNode_34 5B3CD56246F96E04D775069F3B0A076E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)
|
||||
End Object
|
||||
293
style.css
Normal file
293
style.css
Normal file
@@ -0,0 +1,293 @@
|
||||
:root {
|
||||
--primary-color: #2196F3;
|
||||
--secondary-color: #00A8F3;
|
||||
--background-color: #1B1B1B;
|
||||
--card-bg: #2A2A2A;
|
||||
--text-primary: #FFFFFF;
|
||||
--text-secondary: #BBBBBB;
|
||||
--border-color: #3A3A3A;
|
||||
--padding: 12px;
|
||||
--border-radius: 4px;
|
||||
--font-size: 14px;
|
||||
--box-shadow: 0 2px 8px rgba(0,0,0,0.2);
|
||||
--hover-box-shadow: 0 5px 15px rgba(33,150,243,0.2);
|
||||
--transition-duration: 0.3s;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
body, html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--background-color);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.flex-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: var(--text-primary);
|
||||
font-weight: 500;
|
||||
font-size: 28px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.search-box {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
margin-bottom: 20px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
[data-search] {
|
||||
background: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-primary);
|
||||
padding: var(--padding);
|
||||
border-radius: var(--border-radius);
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
[data-search]::placeholder {
|
||||
color: var(--text-secondary);
|
||||
}
|
||||
|
||||
.filter-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.categories-filter {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.category-button {
|
||||
background: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-secondary);
|
||||
padding: var(--padding);
|
||||
border-radius: var(--border-radius);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
font-size: var(--font-size);
|
||||
}
|
||||
|
||||
.category-button.active {
|
||||
background: var(--primary-color);
|
||||
color: var(--text-primary);
|
||||
border-color: var(--primary-color);
|
||||
}
|
||||
|
||||
.category-button:hover {
|
||||
border-color: var(--primary-color);
|
||||
color: var (--primary-color);
|
||||
}
|
||||
|
||||
.category-button.active:hover {
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
[data-material-grid] {
|
||||
column-count: 4;
|
||||
column-gap: 20px;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.material-card {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
margin-bottom: 20px;
|
||||
background: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: var(--border-radius);
|
||||
overflow: hidden;
|
||||
box-shadow: var(--box-shadow);
|
||||
transition: transform 0.2s, opacity var(--transition-duration);
|
||||
cursor: pointer;
|
||||
opacity: 1;
|
||||
animation: fadeIn var(--transition-duration) ease-in;
|
||||
}
|
||||
|
||||
.material-card.hide {
|
||||
opacity: 0;
|
||||
transform: scale(0.95);
|
||||
animation: fadeOut var(--transition-duration) ease-out;
|
||||
}
|
||||
|
||||
.material-card.show {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
.material-card:hover {
|
||||
transform: translateY(-5px);
|
||||
border-color: var(--primary-color);
|
||||
box-shadow: var(--hover-box-shadow);
|
||||
}
|
||||
|
||||
.material-preview {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.material-info {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.material-info h3 {
|
||||
margin-bottom: 8px;
|
||||
color: var(--text-primary);
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.material-info p {
|
||||
color: var(--text-secondary);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.material-tags {
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.tag {
|
||||
background: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
color: var(--text-secondary);
|
||||
padding: 3px 8px;
|
||||
border-radius: var(--border-radius);
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.tag:hover {
|
||||
background: var(--primary-color);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
.copy-notification {
|
||||
position: fixed;
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
padding: 8px 12px;
|
||||
border-radius: var(--border-radius);
|
||||
font-size: 14px;
|
||||
pointer-events: none;
|
||||
transform: translate(-50%, 0);
|
||||
animation: floatUp 1s ease-out forwards;
|
||||
z-index: 1000;
|
||||
box-shadow: var(--hover-box-shadow);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@keyframes floatUp {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: translate(-50%, -30px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(0.95);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeOut {
|
||||
0% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
transform: scale(0.95);
|
||||
}
|
||||
}
|
||||
|
||||
.header-content {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#convert-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: var(--background-color);
|
||||
color: var(--text-secondary);
|
||||
padding: 20px 0;
|
||||
text-align: center;
|
||||
border-top: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.footer-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.footer-content p {
|
||||
margin: 0;
|
||||
font-size: var(--font-size);
|
||||
}
|
||||
|
||||
.footer-content nav {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.footer-content nav a {
|
||||
color: var(--text-secondary);
|
||||
text-decoration: none;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.footer-content nav a:hover {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
BIN
thumbnails/vinette.png
Normal file
BIN
thumbnails/vinette.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 123 KiB |
Reference in New Issue
Block a user