@@ -152,6 +152,153 @@ const CustomRender = {
152152 }
153153 }
154154 } ,
155+ grass : function (
156+ t_positions ,
157+ t_normals ,
158+ t_uvs ,
159+ t_colors ,
160+ positions ,
161+ normals ,
162+ uvs ,
163+ colors ,
164+ pos
165+ ) {
166+ const uv = this . getUV ( "grass" ) ;
167+ console . log ( uv ) ;
168+ // prettier-ignore
169+ const faceVertex = {
170+ pos : [
171+ - 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
172+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
173+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
174+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
175+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
176+ 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
177+
178+ - 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
179+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
180+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
181+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
182+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
183+ 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
184+
185+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
186+ - 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
187+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
188+
189+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
190+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
191+ 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
192+
193+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
194+ - 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
195+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
196+
197+ 0.4 + pos [ 0 ] , - 0.5 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
198+ - 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , - 0.4 + pos [ 2 ] ,
199+ 0.4 + pos [ 0 ] , 0.4 + pos [ 1 ] , 0.4 + pos [ 2 ] ,
200+ ] ,
201+ norm : [
202+ 0 , 0 , 1 ,
203+ 0 , 0 , 1 ,
204+ 0 , 0 , 1 ,
205+ 0 , 0 , 1 ,
206+ 0 , 0 , 1 ,
207+ 0 , 0 , 1 ,
208+ 0 , 0 , 1 ,
209+ 0 , 0 , 1 ,
210+ 0 , 0 , 1 ,
211+ 0 , 0 , 1 ,
212+ 0 , 0 , 1 ,
213+ 0 , 0 , 1 ,
214+
215+ 0 , 0 , 1 ,
216+ 0 , 0 , 1 ,
217+ 0 , 0 , 1 ,
218+ 0 , 0 , 1 ,
219+ 0 , 0 , 1 ,
220+ 0 , 0 , 1 ,
221+ 0 , 0 , 1 ,
222+ 0 , 0 , 1 ,
223+ 0 , 0 , 1 ,
224+ 0 , 0 , 1 ,
225+ 0 , 0 , 1 ,
226+ 0 , 0 , 1 ,
227+ ] ,
228+ uv : [
229+ ...uv [ 0 ] ,
230+ ...uv [ 2 ] ,
231+ ...uv [ 1 ] ,
232+
233+ ...uv [ 1 ] ,
234+ ...uv [ 2 ] ,
235+ ...uv [ 3 ] ,
236+
237+ ...uv [ 0 ] ,
238+ ...uv [ 2 ] ,
239+ ...uv [ 1 ] ,
240+
241+ ...uv [ 1 ] ,
242+ ...uv [ 2 ] ,
243+ ...uv [ 3 ] ,
244+
245+ ...uv [ 2 ] ,
246+ ...uv [ 0 ] ,
247+ ...uv [ 1 ] ,
248+
249+ ...uv [ 2 ] ,
250+ ...uv [ 1 ] ,
251+ ...uv [ 3 ] ,
252+
253+ ...uv [ 2 ] ,
254+ ...uv [ 0 ] ,
255+ ...uv [ 1 ] ,
256+
257+ ...uv [ 2 ] ,
258+ ...uv [ 1 ] ,
259+ ...uv [ 3 ] ,
260+ ] ,
261+ color : [
262+ 0.1 , 1 , 0.1 ,
263+ 0.1 , 1 , 0.1 ,
264+ 0.1 , 1 , 0.1 ,
265+ 0.1 , 1 , 0.1 ,
266+ 0.1 , 1 , 0.1 ,
267+ 0.1 , 1 , 0.1 ,
268+ 0.1 , 1 , 0.1 ,
269+ 0.1 , 1 , 0.1 ,
270+ 0.1 , 1 , 0.1 ,
271+ 0.1 , 1 , 0.1 ,
272+ 0.1 , 1 , 0.1 ,
273+ 0.1 , 1 , 0.1 ,
274+ 0.1 , 1 , 0.1 ,
275+ 0.1 , 1 , 0.1 ,
276+ 0.1 , 1 , 0.1 ,
277+ 0.1 , 1 , 0.1 ,
278+ 0.1 , 1 , 0.1 ,
279+ 0.1 , 1 , 0.1 ,
280+ 0.1 , 1 , 0.1 ,
281+ 0.1 , 1 , 0.1 ,
282+ 0.1 , 1 , 0.1 ,
283+ 0.1 , 1 , 0.1 ,
284+ 0.1 , 1 , 0.1 ,
285+ 0.1 , 1 , 0.1 ,
286+ ]
287+ }
288+
289+ this . push (
290+ t_positions ,
291+ t_normals ,
292+ t_uvs ,
293+ t_colors ,
294+ positions ,
295+ normals ,
296+ uvs ,
297+ colors ,
298+ faceVertex ,
299+ true
300+ ) ;
301+ } ,
155302} ;
156303
157304class ChunkMesher {
@@ -177,6 +324,23 @@ class ChunkMesher {
177324 }
178325 }
179326
327+ getUV ( name ) {
328+ let { x : toxX , y : toxY } = this . blocksMapping [ name ] ;
329+ console . log ( toxX ) ;
330+ toxX -= 1 ;
331+ toxY -= 1 ;
332+ const x1 = this . q * toxX ;
333+ const y1 = 1 - this . q * toxY - this . q ;
334+ const x2 = this . q * toxX + this . q ;
335+ const y2 = 1 - this . q * toxY ;
336+ return [
337+ [ x1 , y1 ] ,
338+ [ x1 , y2 ] ,
339+ [ x2 , y1 ] ,
340+ [ x2 , y2 ] ,
341+ ] ;
342+ }
343+
180344 getUvForFace ( block , type ) {
181345 var xd , toxX , toxY ;
182346 if (
0 commit comments