Skip to content

Commit

Permalink
basic shader
Browse files Browse the repository at this point in the history
  • Loading branch information
mayankdigii committed Dec 9, 2024
1 parent bae6130 commit c191ca6
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 51 deletions.
7 changes: 4 additions & 3 deletions src/lib/babylon/explorer-alpha-shader/index.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { ShaderMaterial, ShaderLanguage, Scene, Effect } from '@babylonjs/core'
import { customFragmentShader } from './fragment'
import { customVertexShader } from './vertex'
import { customBasicFragmentShader } from './basic_fragment'
// import { customFragmentShader } from './fragmentTest'

export function createShader(scene: Scene, shaderId: string) {
Effect.ShadersStore['customVertexShader'] = customVertexShader
Effect.ShadersStore['customFragmentShader'] = customFragmentShader
Effect.ShadersStore['customFragmentShader'] = customBasicFragmentShader
return new ShaderMaterial(
shaderId,
scene,
Expand All @@ -26,10 +27,10 @@ export function createShader(scene: Scene, shaderId: string) {
'sampler_MainTex',
'sampler_NormalMap',
'sampler_Emissive_Tex',
'textureSampler',
],
samplers: ['sampler_MainTex', 'sampler_NormalMap', 'sampler_Emissive_Tex'],
samplers: ['sampler_MainTex', 'sampler_NormalMap', 'sampler_Emissive_Tex', 'textureSampler'],
defines: [],
// needAlphaBlending: true,
shaderLanguage: ShaderLanguage.GLSL,
}
)
Expand Down
98 changes: 50 additions & 48 deletions src/lib/babylon/render.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export async function render(canvas: HTMLCanvasElement, config: PreviewConfig):
// upperBody
const upperMainTexture = new Texture('/upper-MainTex', scene)
// const upperNormalTexture = new Texture('/pants-normal', scene)
upperBodyShaderMaterial.setTexture('sampler_MainTex', upperMainTexture)
upperBodyShaderMaterial.setTexture('textureSampler', upperMainTexture)
upperBodyShaderMaterial.setTexture('sampler_Emissive_Tex', upperMainTexture)

// Lower Body
Expand Down Expand Up @@ -72,27 +72,29 @@ export async function render(canvas: HTMLCanvasElement, config: PreviewConfig):
const wearables = Array.from(slots.values())

for (const wearable of wearables.filter(isModel)) {
// if (
// wearable?.data?.category !== 'lower_body' &&
// wearable?.data?.category !== 'hair' &&
// wearable?.data?.category !== 'upper_body'
// ) {
// const promise = loadWearable(scene, wearable, config.bodyShape, config.skin, config.hair).catch((error) => {
// console.warn(error.message)
// })
// avatarPromises?.push(promise)
// }
const promise = loadWearable(scene, wearable, config.bodyShape, config.skin, config.hair).catch((error) => {
console.warn(error.message)
})
avatarPromises?.push(promise)
console.log('wearable?.data?.category', wearable?.data?.category);
if (
wearable?.data?.category !== 'lower_body' &&
wearable?.data?.category !== 'hair' &&
wearable?.data?.category !== 'feet'
) {
const promise = loadWearable(scene, wearable, config.bodyShape, config.skin, config.hair).catch((error) => {
console.warn(error.message)
})
avatarPromises?.push(promise)
}
// const promise = loadWearable(scene, wearable, config.bodyShape, config.skin, config.hair).catch((error) => {
// console.warn(error.message)
// })
// avatarPromises?.push(promise)
}

const assets = (await Promise.all(avatarPromises)).filter(isSuccesful)

// add all assets to scene and create shaderMaterial based on bodyPart
for (const asset of assets) {
asset.container.addAllToScene()
console.log('assets', asset);
asset.container.addAllToScene()
}

for (const mesh of scene.meshes) {
Expand All @@ -102,38 +104,38 @@ export async function render(canvas: HTMLCanvasElement, config: PreviewConfig):
mesh.setEnabled(false)
mesh.material = skinShaderMaterial
}
if (name.endsWith('lbody_basemesh')) {
mesh.setEnabled(false)
mesh.material = skinShaderMaterial
}
if (name.endsWith('feet_basemesh')) {
mesh.setEnabled(false)
mesh.material = skinShaderMaterial
}
if (name.endsWith('head')) {
mesh.setEnabled(true)
mesh.material = skinShaderMaterial
}
if (name.endsWith('head_basemesh')) {
mesh.setEnabled(true)
mesh.material = skinShaderMaterial
}
if (name.endsWith('mask_eyes')) {
mesh.setEnabled(true)
mesh.material = skinShaderMaterial
}
if (name.endsWith('mask_eyebrows')) {
mesh.setEnabled(true)
mesh.material = skinShaderMaterial
}
if (name.endsWith('mask_mouth')) {
mesh.setEnabled(true)
mesh.material = skinShaderMaterial
}
if (name.endsWith('hands_basemesh')) {
mesh.setEnabled(true)
mesh.material = skinShaderMaterial
}
// if (name.endsWith('lbody_basemesh')) {
// mesh.setEnabled(false)
// mesh.material = skinShaderMaterial
// }
// if (name.endsWith('feet_basemesh')) {
// mesh.setEnabled(false)
// mesh.material = skinShaderMaterial
// }
// if (name.endsWith('head')) {
// mesh.setEnabled(true)
// mesh.material = skinShaderMaterial
// }
// if (name.endsWith('head_basemesh')) {
// mesh.setEnabled(true)
// mesh.material = skinShaderMaterial
// }
// if (name.endsWith('mask_eyes')) {
// mesh.setEnabled(true)
// mesh.material = skinShaderMaterial
// }
// if (name.endsWith('mask_eyebrows')) {
// mesh.setEnabled(true)
// mesh.material = skinShaderMaterial
// }
// if (name.endsWith('mask_mouth')) {
// mesh.setEnabled(true)
// mesh.material = skinShaderMaterial
// }
// if (name.endsWith('hands_basemesh')) {
// mesh.setEnabled(true)
// mesh.material = skinShaderMaterial
// }
}

// build avatar
Expand Down

0 comments on commit c191ca6

Please sign in to comment.