oh almost forgot to update this dont use it not ready
|
@ -0,0 +1,430 @@
|
|||
#
|
||||
# A fatal error has been detected by the Java Runtime Environment:
|
||||
#
|
||||
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffe8e967366, pid=74156, tid=0x000000000001302c
|
||||
#
|
||||
# JRE version: Java(TM) SE Runtime Environment (8.0_201-b09) (build 1.8.0_201-b09)
|
||||
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.201-b09 mixed mode windows-amd64 compressed oops)
|
||||
# Problematic frame:
|
||||
# C [ig9icd64.dll+0x157366]
|
||||
#
|
||||
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
|
||||
#
|
||||
# If you would like to submit a bug report, please visit:
|
||||
# http://bugreport.java.com/bugreport/crash.jsp
|
||||
# The crash happened outside the Java Virtual Machine in native code.
|
||||
# See problematic frame for where to report the bug.
|
||||
#
|
||||
|
||||
--------------- T H R E A D ---------------
|
||||
|
||||
Current thread (0x0000000003233800): JavaThread "main" [_thread_in_native, id=77868, stack(0x0000000003050000,0x0000000003150000)]
|
||||
|
||||
siginfo: ExceptionCode=0xc0000005, reading address 0x000000002c445000
|
||||
|
||||
Registers:
|
||||
RAX=0x000000000000601f, RBX=0x000000000314e930, RCX=0x0000000000000000, RDX=0x000000002c444fc0
|
||||
RSP=0x000000000314e840, RBP=0x000000000314e9a0, RSI=0x000000002a580000, RDI=0x000000002a880f80
|
||||
R8 =0x0000000000400000, R9 =0x0000000000008000, R10=0x0000000000006020, R11=0x0000000024446364
|
||||
R12=0x0000000000000000, R13=0x000000000314eac0, R14=0x0000000000000400, R15=0x00000000000001c1
|
||||
RIP=0x00007ffe8e967366, EFLAGS=0x0000000000010213
|
||||
|
||||
Top of Stack: (sp=0x000000000314e840)
|
||||
0x000000000314e840: 00000000d8f95020 0000000000000000
|
||||
0x000000000314e850: 00000000d8f95008 0000000000000000
|
||||
0x000000000314e860: 000000002c144040 00007ffe8ed0795c
|
||||
0x000000000314e870: 000000000314ea20 000000002c144040
|
||||
0x000000000314e880: 00007ffe8ed07600 000000000314eac0
|
||||
0x000000000314e890: 0000000000000000 00007ffe8ed0a2a3
|
||||
0x000000000314e8a0: 000000000314e9a0 000000000314ea80
|
||||
0x000000000314e8b0: 000000002a580000 00007ffe8ed08910
|
||||
0x000000000314e8c0: 4000364040000049 0000000000000001
|
||||
0x000000000314e8d0: 000000002c144040 0000000000000000
|
||||
0x000000000314e8e0: 0000000000000000 00007ffe8e83436b
|
||||
0x000000000314e8f0: 000000002479be10 0000000000000001
|
||||
0x000000000314e900: 000000000146d440 0000000000000001
|
||||
0x000000000314e910: 0000000000000001 0000000000000000
|
||||
0x000000000314e920: 000000000314e900 000000002472af80
|
||||
0x000000000314e930: 00007ffe8f375ca0 000000002442d680
|
||||
|
||||
Instructions: (pc=0x00007ffe8e967366)
|
||||
0x00007ffe8e967346: 66 66 0f 1f 84 00 00 00 00 00 f3 0f 6f 3a 41 ff
|
||||
0x00007ffe8e967356: c2 f3 0f 6f 72 10 f3 0f 6f 6a 20 f3 0f 6f 62 30
|
||||
0x00007ffe8e967366: f3 0f 6f 5a 40 f3 0f 6f 52 50 f3 0f 6f 4a 60 f3
|
||||
0x00007ffe8e967376: 0f 6f 42 70 48 83 ea 80 66 0f e7 3f 66 0f e7 77
|
||||
|
||||
|
||||
Register to memory mapping:
|
||||
|
||||
RAX=0x000000000000601f is an unknown value
|
||||
RBX=0x000000000314e930 is pointing into the stack for thread: 0x0000000003233800
|
||||
RCX=0x0000000000000000 is an unknown value
|
||||
RDX=0x000000002c444fc0 is an unknown value
|
||||
RSP=0x000000000314e840 is pointing into the stack for thread: 0x0000000003233800
|
||||
RBP=0x000000000314e9a0 is pointing into the stack for thread: 0x0000000003233800
|
||||
RSI=0x000000002a580000 is an unknown value
|
||||
RDI=0x000000002a880f80 is an unknown value
|
||||
R8 =0x0000000000400000 is an unknown value
|
||||
R9 =0x0000000000008000 is an unknown value
|
||||
R10=0x0000000000006020 is an unknown value
|
||||
R11=0x0000000024446364 is an unknown value
|
||||
R12=0x0000000000000000 is an unknown value
|
||||
R13=0x000000000314eac0 is pointing into the stack for thread: 0x0000000003233800
|
||||
R14=0x0000000000000400 is an unknown value
|
||||
R15=0x00000000000001c1 is an unknown value
|
||||
|
||||
|
||||
Stack: [0x0000000003050000,0x0000000003150000], sp=0x000000000314e840, free space=1018k
|
||||
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
|
||||
C [ig9icd64.dll+0x157366]
|
||||
C [ig9icd64.dll+0x4f795c]
|
||||
C [ig9icd64.dll+0x4fa2a3]
|
||||
C [ig9icd64.dll+0x4ff938]
|
||||
C [ig9icd64.dll+0x39f3af]
|
||||
C [ig9icd64.dll+0x35aa9a]
|
||||
C [ig9icd64.dll+0x1b4428]
|
||||
C [ig9icd64.dll+0x1aa4a3]
|
||||
C [ig9icd64.dll+0x1a741d]
|
||||
C [ig9icd64.dll+0xecd03]
|
||||
C [opengl32.dll+0x2e014]
|
||||
C [lwjgl_opengl.dll+0xcab5]
|
||||
C 0x0000000003348c67
|
||||
|
||||
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
|
||||
j org.lwjgl.opengl.GL11C.nglTexImage2D(IIIIIIIIJ)V+0
|
||||
j org.lwjgl.opengl.GL11C.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V+17
|
||||
j org.lwjgl.opengl.GL11.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V+14
|
||||
j io.github.hydos.ginger.renderEngine.texture.ModelTexture.<init>(Ljava/lang/String;)V+124
|
||||
j io.github.hydos.ginger.Example.main([Ljava/lang/String;)V+492
|
||||
j io.github.hydos.ginger.Starter.main([Ljava/lang/String;)V+8
|
||||
v ~StubRoutines::call_stub
|
||||
|
||||
--------------- P R O C E S S ---------------
|
||||
|
||||
Java Threads: ( => current thread )
|
||||
0x0000000019c12800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=76764, stack(0x00000000293f0000,0x00000000294f0000)]
|
||||
0x0000000019879000 JavaThread "Service Thread" daemon [_thread_blocked, id=75316, stack(0x0000000019c30000,0x0000000019d30000)]
|
||||
0x0000000017ee9800 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=68888, stack(0x0000000019730000,0x0000000019830000)]
|
||||
0x0000000017eca000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=76112, stack(0x0000000019630000,0x0000000019730000)]
|
||||
0x0000000017ebc000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=76636, stack(0x0000000019530000,0x0000000019630000)]
|
||||
0x0000000017eb7800 JavaThread "Attach Listener" daemon [_thread_blocked, id=75148, stack(0x0000000019430000,0x0000000019530000)]
|
||||
0x0000000017eb6800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=77764, stack(0x0000000019330000,0x0000000019430000)]
|
||||
0x000000000332d800 JavaThread "Finalizer" daemon [_thread_blocked, id=76364, stack(0x0000000019130000,0x0000000019230000)]
|
||||
0x0000000003324000 JavaThread "Reference Handler" daemon [_thread_blocked, id=75612, stack(0x0000000019030000,0x0000000019130000)]
|
||||
=>0x0000000003233800 JavaThread "main" [_thread_in_native, id=77868, stack(0x0000000003050000,0x0000000003150000)]
|
||||
|
||||
Other Threads:
|
||||
0x0000000017e77000 VMThread [stack: 0x0000000018f30000,0x0000000019030000] [id=77928]
|
||||
0x0000000019892800 WatcherThread [stack: 0x0000000019d30000,0x0000000019e30000] [id=77964]
|
||||
|
||||
VM state:not at safepoint (normal execution)
|
||||
|
||||
VM Mutex/Monitor currently owned by a thread: None
|
||||
|
||||
heap address: 0x0000000081200000, size: 2030 MB, Compressed Oops mode: 32-bit
|
||||
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3
|
||||
Compressed class space size: 1073741824 Address: 0x0000000100000000
|
||||
|
||||
Heap:
|
||||
PSYoungGen total 141824K, used 23258K [0x00000000d5b80000, 0x00000000df480000, 0x0000000100000000)
|
||||
eden space 131584K, 9% used [0x00000000d5b80000,0x00000000d683d7e8,0x00000000ddc00000)
|
||||
from space 10240K, 99% used [0x00000000de780000,0x00000000df179098,0x00000000df180000)
|
||||
to space 11776K, 0% used [0x00000000ddc00000,0x00000000ddc00000,0x00000000de780000)
|
||||
ParOldGen total 87552K, used 8561K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a5c798,0x0000000086780000)
|
||||
Metaspace used 10624K, capacity 10839K, committed 11008K, reserved 1058816K
|
||||
class space used 933K, capacity 1007K, committed 1024K, reserved 1048576K
|
||||
|
||||
Card table byte_map: [0x00000000126f0000,0x0000000012af0000] byte_map_base: 0x00000000122e7000
|
||||
|
||||
Marking Bits: (ParMarkBitMap*) 0x0000000054c84ce0
|
||||
Begin Bits: [0x00000000131a0000, 0x0000000015158000)
|
||||
End Bits: [0x0000000015158000, 0x0000000017110000)
|
||||
|
||||
Polling page: 0x0000000000ff0000
|
||||
|
||||
CodeCache: size=245760Kb used=3964Kb max_used=3981Kb free=241795Kb
|
||||
bounds [0x0000000003330000, 0x0000000003720000, 0x0000000012330000]
|
||||
total_blobs=1886 nmethods=962 adapters=837
|
||||
compilation: enabled
|
||||
|
||||
Compilation events (10 events):
|
||||
Event: 4.550 Thread 0x0000000017ee9800 959 1 io.github.hydos.ginger.normals.obj.VertexNM::getNormalIndex (5 bytes)
|
||||
Event: 4.550 Thread 0x0000000017ee9800 nmethod 959 0x000000000370b010 code [0x000000000370b160, 0x000000000370b270]
|
||||
Event: 4.550 Thread 0x0000000017ee9800 960 1 io.github.hydos.ginger.normals.obj.VertexNM::getAverageTangent (5 bytes)
|
||||
Event: 4.550 Thread 0x0000000017ee9800 nmethod 960 0x000000000370ad50 code [0x000000000370aea0, 0x000000000370afb0]
|
||||
Event: 4.550 Thread 0x0000000017ee9800 961 3 io.github.hydos.ginger.normals.obj.VertexNM::getLength (5 bytes)
|
||||
Event: 4.550 Thread 0x0000000017eca000 nmethod 958 0x00000000036fcf50 code [0x00000000036fd080, 0x00000000036fd118]
|
||||
Event: 4.550 Thread 0x0000000017ee9800 nmethod 961 0x000000000370aa10 code [0x000000000370ab60, 0x000000000370acb0]
|
||||
Event: 4.552 Thread 0x0000000017ee9800 962 1 io.github.hydos.ginger.normals.obj.VertexNM::getLength (5 bytes)
|
||||
Event: 4.552 Thread 0x0000000017ee9800 nmethod 962 0x000000000370a750 code [0x000000000370a8a0, 0x000000000370a9b0]
|
||||
Event: 4.588 Thread 0x0000000017ebc000 nmethod 934 0x0000000003713210 code [0x0000000003713520, 0x0000000003714d60]
|
||||
|
||||
GC Heap History (10 events):
|
||||
Event: 2.788 GC heap before
|
||||
{Heap before GC invocations=2 (full 0):
|
||||
PSYoungGen total 38400K, used 38277K [0x00000000d5b80000, 0x00000000d8600000, 0x0000000100000000)
|
||||
eden space 33280K, 100% used [0x00000000d5b80000,0x00000000d7c00000,0x00000000d7c00000)
|
||||
from space 5120K, 97% used [0x00000000d7c00000,0x00000000d80e1550,0x00000000d8100000)
|
||||
to space 5120K, 0% used [0x00000000d8100000,0x00000000d8100000,0x00000000d8600000)
|
||||
ParOldGen total 87552K, used 16K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 0% used [0x0000000081200000,0x0000000081204000,0x0000000086780000)
|
||||
Metaspace used 9141K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 2.795 GC heap after
|
||||
Heap after GC invocations=2 (full 0):
|
||||
PSYoungGen total 38400K, used 5102K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d8100000,0x00000000d85fb9d0,0x00000000d8600000)
|
||||
to space 5120K, 0% used [0x00000000d7c00000,0x00000000d7c00000,0x00000000d8100000)
|
||||
ParOldGen total 87552K, used 600K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 0% used [0x0000000081200000,0x0000000081296000,0x0000000086780000)
|
||||
Metaspace used 9141K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 2.849 GC heap before
|
||||
{Heap before GC invocations=3 (full 0):
|
||||
PSYoungGen total 38400K, used 38382K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 100% used [0x00000000d5b80000,0x00000000d7c00000,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d8100000,0x00000000d85fb9d0,0x00000000d8600000)
|
||||
to space 5120K, 0% used [0x00000000d7c00000,0x00000000d7c00000,0x00000000d8100000)
|
||||
ParOldGen total 87552K, used 600K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 0% used [0x0000000081200000,0x0000000081296000,0x0000000086780000)
|
||||
Metaspace used 9145K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 2.857 GC heap after
|
||||
Heap after GC invocations=3 (full 0):
|
||||
PSYoungGen total 38400K, used 5090K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d7c00000,0x00000000d80f8850,0x00000000d8100000)
|
||||
to space 5120K, 0% used [0x00000000da180000,0x00000000da180000,0x00000000da680000)
|
||||
ParOldGen total 87552K, used 1896K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 2% used [0x0000000081200000,0x00000000813da000,0x0000000086780000)
|
||||
Metaspace used 9145K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 2.907 GC heap before
|
||||
{Heap before GC invocations=4 (full 0):
|
||||
PSYoungGen total 38400K, used 38058K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 99% used [0x00000000d5b80000,0x00000000d7bb2140,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d7c00000,0x00000000d80f8850,0x00000000d8100000)
|
||||
to space 5120K, 0% used [0x00000000da180000,0x00000000da180000,0x00000000da680000)
|
||||
ParOldGen total 87552K, used 1896K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 2% used [0x0000000081200000,0x00000000813da000,0x0000000086780000)
|
||||
Metaspace used 9145K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 2.922 GC heap after
|
||||
Heap after GC invocations=4 (full 0):
|
||||
PSYoungGen total 71680K, used 5107K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 66560K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000da180000,0x00000000da67cd78,0x00000000da680000)
|
||||
to space 5120K, 0% used [0x00000000d9c80000,0x00000000d9c80000,0x00000000da180000)
|
||||
ParOldGen total 87552K, used 3832K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 4% used [0x0000000081200000,0x00000000815be000,0x0000000086780000)
|
||||
Metaspace used 9145K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 3.037 GC heap before
|
||||
{Heap before GC invocations=5 (full 0):
|
||||
PSYoungGen total 71680K, used 71667K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 66560K, 100% used [0x00000000d5b80000,0x00000000d9c80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000da180000,0x00000000da67cd78,0x00000000da680000)
|
||||
to space 5120K, 0% used [0x00000000d9c80000,0x00000000d9c80000,0x00000000da180000)
|
||||
ParOldGen total 87552K, used 3832K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 4% used [0x0000000081200000,0x00000000815be000,0x0000000086780000)
|
||||
Metaspace used 9145K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 3.058 GC heap after
|
||||
Heap after GC invocations=5 (full 0):
|
||||
PSYoungGen total 71680K, used 5111K [0x00000000d5b80000, 0x00000000df180000, 0x0000000100000000)
|
||||
eden space 66560K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000d9c80000,0x00000000da17dcc8,0x00000000da180000)
|
||||
to space 10240K, 0% used [0x00000000de780000,0x00000000de780000,0x00000000df180000)
|
||||
ParOldGen total 87552K, used 8489K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a4a798,0x0000000086780000)
|
||||
Metaspace used 9145K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 4.439 GC heap before
|
||||
{Heap before GC invocations=6 (full 0):
|
||||
PSYoungGen total 71680K, used 71671K [0x00000000d5b80000, 0x00000000df180000, 0x0000000100000000)
|
||||
eden space 66560K, 100% used [0x00000000d5b80000,0x00000000d9c80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000d9c80000,0x00000000da17dcc8,0x00000000da180000)
|
||||
to space 10240K, 0% used [0x00000000de780000,0x00000000de780000,0x00000000df180000)
|
||||
ParOldGen total 87552K, used 8489K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a4a798,0x0000000086780000)
|
||||
Metaspace used 10555K, capacity 10775K, committed 11008K, reserved 1058816K
|
||||
class space used 928K, capacity 1007K, committed 1024K, reserved 1048576K
|
||||
Event: 4.451 GC heap after
|
||||
Heap after GC invocations=6 (full 0):
|
||||
PSYoungGen total 141824K, used 10212K [0x00000000d5b80000, 0x00000000df480000, 0x0000000100000000)
|
||||
eden space 131584K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000ddc00000)
|
||||
from space 10240K, 99% used [0x00000000de780000,0x00000000df179098,0x00000000df180000)
|
||||
to space 11776K, 0% used [0x00000000ddc00000,0x00000000ddc00000,0x00000000de780000)
|
||||
ParOldGen total 87552K, used 8561K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a5c798,0x0000000086780000)
|
||||
Metaspace used 10555K, capacity 10775K, committed 11008K, reserved 1058816K
|
||||
class space used 928K, capacity 1007K, committed 1024K, reserved 1048576K
|
||||
}
|
||||
|
||||
Deoptimization events (10 events):
|
||||
Event: 2.661 Thread 0x0000000003233800 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000003653d60 method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 119
|
||||
Event: 2.661 Thread 0x0000000003233800 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000003653d60 method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 119
|
||||
Event: 2.661 Thread 0x0000000003233800 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000003653d60 method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 119
|
||||
Event: 3.141 Thread 0x0000000003233800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003688700 method=io.github.hydos.ginger.obj.OBJFileLoader.removeUnusedVertices(Ljava/util/List;)V @ 13
|
||||
Event: 3.201 Thread 0x0000000003233800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003690768 method=io.github.hydos.ginger.obj.OBJFileLoader.convertDataToArrays(Ljava/util/List;Ljava/util/List;Ljava/util/List;[F[F[F)F @ 14
|
||||
Event: 3.214 Thread 0x0000000003233800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003694944 method=io.github.hydos.ginger.obj.OBJFileLoader.convertIndicesListToArray(Ljava/util/List;)[I @ 14
|
||||
Event: 3.287 Thread 0x0000000003233800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000036915ac method=io.github.hydos.ginger.obj.OBJFileLoader.removeUnusedVertices(Ljava/util/List;)V @ 13
|
||||
Event: 3.287 Thread 0x0000000003233800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000036961e0 method=io.github.hydos.ginger.obj.OBJFileLoader.convertDataToArrays(Ljava/util/List;Ljava/util/List;Ljava/util/List;[F[F[F)F @ 14
|
||||
Event: 3.287 Thread 0x0000000003233800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000036942ec method=io.github.hydos.ginger.obj.OBJFileLoader.convertIndicesListToArray(Ljava/util/List;)[I @ 14
|
||||
Event: 4.489 Thread 0x0000000003233800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000036ec660 method=io.github.hydos.ginger.terrain.Terrain.getHeight(IILjava/awt/image/BufferedImage;)F @ 21
|
||||
|
||||
Classes redefined (0 events):
|
||||
No events
|
||||
|
||||
Internal exceptions (10 events):
|
||||
Event: 0.572 Thread 0x0000000003233800 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.lambda$static$0(Ljava/lang/String;)Ljava/lang/Boolean;> (0x00000000d5dba520) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\interpreter\linkResolve
|
||||
Event: 0.636 Thread 0x0000000003233800 Exception <a 'java/lang/NoSuchFieldError': method resolution failed> (0x00000000d5e32340) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\methodHandles.cpp, line 1167]
|
||||
Event: 0.638 Thread 0x0000000003233800 Exception <a 'java/lang/NoSuchFieldError': method resolution failed> (0x00000000d5e3f710) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\methodHandles.cpp, line 1167]
|
||||
Event: 0.804 Thread 0x0000000003233800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f867e0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 0.804 Thread 0x0000000003233800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f869f0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 0.806 Thread 0x0000000003233800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f8a900) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 0.806 Thread 0x0000000003233800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f8ab10) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 1.427 Thread 0x0000000003233800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000d62417d0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jni.cpp, line 709]
|
||||
Event: 1.428 Thread 0x0000000003233800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000d6241fb8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jni.cpp, line 709]
|
||||
Event: 3.735 Thread 0x0000000003233800 Exception <a 'java/io/FileNotFoundException'> (0x00000000d8fd3fd8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jni.cpp, line 709]
|
||||
|
||||
Events (10 events):
|
||||
Event: 4.528 loading class org/lwjgl/system/CallbackI
|
||||
Event: 4.528 loading class org/lwjgl/system/CallbackI done
|
||||
Event: 4.529 loading class io/github/hydos/ginger/guis/GuiTexture
|
||||
Event: 4.529 loading class io/github/hydos/ginger/guis/GuiTexture done
|
||||
Event: 4.533 loading class io/github/hydos/ginger/renderEngine/tools/MousePicker
|
||||
Event: 4.533 loading class io/github/hydos/ginger/renderEngine/tools/MousePicker done
|
||||
Event: 4.534 loading class io/github/hydos/ginger/normals/obj/NormalMappedObjLoader
|
||||
Event: 4.534 loading class io/github/hydos/ginger/normals/obj/NormalMappedObjLoader done
|
||||
Event: 4.535 loading class io/github/hydos/ginger/normals/obj/VertexNM
|
||||
Event: 4.535 loading class io/github/hydos/ginger/normals/obj/VertexNM done
|
||||
|
||||
|
||||
Dynamic libraries:
|
||||
0x00007ff759260000 - 0x00007ff759297000 C:\Program Files\Java\jdk1.8.0_201\bin\javaw.exe
|
||||
0x00007ffedc730000 - 0x00007ffedc91d000 C:\WINDOWS\SYSTEM32\ntdll.dll
|
||||
0x00007ffedb680000 - 0x00007ffedb733000 C:\WINDOWS\System32\KERNEL32.DLL
|
||||
0x00007ffed95e0000 - 0x00007ffed9873000 C:\WINDOWS\System32\KERNELBASE.dll
|
||||
0x00007ffed9960000 - 0x00007ffed9a03000 C:\WINDOWS\System32\ADVAPI32.dll
|
||||
0x00007ffedb430000 - 0x00007ffedb4ce000 C:\WINDOWS\System32\msvcrt.dll
|
||||
0x00007ffedafd0000 - 0x00007ffedb06e000 C:\WINDOWS\System32\sechost.dll
|
||||
0x00007ffedbc90000 - 0x00007ffedbdb2000 C:\WINDOWS\System32\RPCRT4.dll
|
||||
0x00007ffedb7c0000 - 0x00007ffedb957000 C:\WINDOWS\System32\USER32.dll
|
||||
0x00007ffed8800000 - 0x00007ffed8820000 C:\WINDOWS\System32\win32u.dll
|
||||
0x00007ffedbdc0000 - 0x00007ffedbde9000 C:\WINDOWS\System32\GDI32.dll
|
||||
0x00007ffed8820000 - 0x00007ffed89ba000 C:\WINDOWS\System32\gdi32full.dll
|
||||
0x00007ffed89c0000 - 0x00007ffed8a60000 C:\WINDOWS\System32\msvcp_win.dll
|
||||
0x00007ffed9280000 - 0x00007ffed937a000 C:\WINDOWS\System32\ucrtbase.dll
|
||||
0x00007ffec64f0000 - 0x00007ffec6769000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.437_none_05b63dca071e5dd6\COMCTL32.dll
|
||||
0x00007ffedb960000 - 0x00007ffedbc8c000 C:\WINDOWS\System32\combase.dll
|
||||
0x00007ffed9560000 - 0x00007ffed95de000 C:\WINDOWS\System32\bcryptPrimitives.dll
|
||||
0x00007ffedb2b0000 - 0x00007ffedb2de000 C:\WINDOWS\System32\IMM32.DLL
|
||||
0x0000000054d10000 - 0x0000000054de1000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\msvcr100.dll
|
||||
0x0000000054460000 - 0x0000000054d04000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\server\jvm.dll
|
||||
0x00007ffedb3b0000 - 0x00007ffedb3b8000 C:\WINDOWS\System32\PSAPI.DLL
|
||||
0x00007ffec3050000 - 0x00007ffec3059000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
|
||||
0x00007ffedb600000 - 0x00007ffedb66d000 C:\WINDOWS\System32\WS2_32.dll
|
||||
0x00007ffeca990000 - 0x00007ffeca99a000 C:\WINDOWS\SYSTEM32\VERSION.dll
|
||||
0x00007ffed68b0000 - 0x00007ffed68d4000 C:\WINDOWS\SYSTEM32\WINMM.dll
|
||||
0x00007ffed6850000 - 0x00007ffed687d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
|
||||
0x00007ffed91b0000 - 0x00007ffed91fa000 C:\WINDOWS\System32\cfgmgr32.dll
|
||||
0x00007ffed6500000 - 0x00007ffed650f000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\verify.dll
|
||||
0x00007ffed0e20000 - 0x00007ffed0e49000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\java.dll
|
||||
0x00007ffed0e00000 - 0x00007ffed0e16000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\zip.dll
|
||||
0x00007ffed9a10000 - 0x00007ffedaf00000 C:\WINDOWS\System32\SHELL32.dll
|
||||
0x00007ffedb2e0000 - 0x00007ffedb388000 C:\WINDOWS\System32\shcore.dll
|
||||
0x00007ffed8a60000 - 0x00007ffed91aa000 C:\WINDOWS\System32\windows.storage.dll
|
||||
0x00007ffed87d0000 - 0x00007ffed87f4000 C:\WINDOWS\System32\profapi.dll
|
||||
0x00007ffed8770000 - 0x00007ffed87cd000 C:\WINDOWS\System32\powrprof.dll
|
||||
0x00007ffedc640000 - 0x00007ffedc692000 C:\WINDOWS\System32\shlwapi.dll
|
||||
0x00007ffed8730000 - 0x00007ffed8741000 C:\WINDOWS\System32\kernel.appcore.dll
|
||||
0x00007ffed9200000 - 0x00007ffed9217000 C:\WINDOWS\System32\cryptsp.dll
|
||||
0x00007ffed0da0000 - 0x00007ffed0dba000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\net.dll
|
||||
0x00007ffec8480000 - 0x00007ffec8656000 C:\WINDOWS\SYSTEM32\urlmon.dll
|
||||
0x00007ffec8870000 - 0x00007ffec8b18000 C:\WINDOWS\SYSTEM32\iertutil.dll
|
||||
0x00007ffed8180000 - 0x00007ffed818c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
|
||||
0x00007ffed7fb0000 - 0x00007ffed8017000 C:\WINDOWS\system32\mswsock.dll
|
||||
0x00007ffed03a0000 - 0x00007ffed03b1000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\nio.dll
|
||||
0x00007ffecffc0000 - 0x00007ffed0032000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\lwjgl.dll
|
||||
0x00007ffecff60000 - 0x00007ffecffbe000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\glfw.dll
|
||||
0x00007ffed6cf0000 - 0x00007ffed6d8c000 C:\WINDOWS\system32\uxtheme.dll
|
||||
0x00007ffecfb10000 - 0x00007ffecfb54000 C:\WINDOWS\SYSTEM32\dinput8.dll
|
||||
0x00007ffecfaf0000 - 0x00007ffecfb01000 C:\WINDOWS\SYSTEM32\xinput1_4.dll
|
||||
0x00007ffed8540000 - 0x00007ffed8569000 C:\WINDOWS\SYSTEM32\DEVOBJ.dll
|
||||
0x00007ffed6de0000 - 0x00007ffed6e0e000 C:\WINDOWS\SYSTEM32\dwmapi.dll
|
||||
0x00007ffed9380000 - 0x00007ffed955b000 C:\WINDOWS\System32\CRYPT32.dll
|
||||
0x00007ffed8750000 - 0x00007ffed8762000 C:\WINDOWS\System32\MSASN1.dll
|
||||
0x00007ffec9c90000 - 0x00007ffec9d5c000 C:\WINDOWS\SYSTEM32\inputhost.dll
|
||||
0x00007ffed63f0000 - 0x00007ffed64d2000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
|
||||
0x00007ffed6ec0000 - 0x00007ffed70cd000 C:\WINDOWS\SYSTEM32\twinapi.appcore.dll
|
||||
0x00007ffed3eb0000 - 0x00007ffed41d2000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
|
||||
0x00007ffed5a20000 - 0x00007ffed5fde000 C:\WINDOWS\SYSTEM32\d2d1.dll
|
||||
0x00007ffed57a0000 - 0x00007ffed5a1e000 C:\WINDOWS\SYSTEM32\d3d11.dll
|
||||
0x00007ffed5110000 - 0x00007ffed52b8000 C:\WINDOWS\SYSTEM32\PROPSYS.dll
|
||||
0x00007ffedaf00000 - 0x00007ffedafc4000 C:\WINDOWS\System32\OLEAUT32.dll
|
||||
0x00007ffed70d0000 - 0x00007ffed70f8000 C:\WINDOWS\SYSTEM32\RMCLIENT.dll
|
||||
0x00007ffed77d0000 - 0x00007ffed7801000 C:\WINDOWS\SYSTEM32\ntmarta.dll
|
||||
0x00007ffed4440000 - 0x00007ffed4593000 C:\WINDOWS\SYSTEM32\wintypes.dll
|
||||
0x00007ffed7440000 - 0x00007ffed7502000 C:\WINDOWS\SYSTEM32\dxgi.dll
|
||||
0x00007ffedc420000 - 0x00007ffedc58a000 C:\WINDOWS\System32\MSCTF.dll
|
||||
0x00007ffed73e0000 - 0x00007ffed73ee000 C:\WINDOWS\SYSTEM32\HID.DLL
|
||||
0x00007ffedbfa0000 - 0x00007ffedc416000 C:\WINDOWS\System32\SETUPAPI.DLL
|
||||
0x00007ffed9930000 - 0x00007ffed9956000 C:\WINDOWS\System32\bcrypt.dll
|
||||
0x00007ffed9220000 - 0x00007ffed9279000 C:\WINDOWS\System32\WINTRUST.dll
|
||||
0x00007ffec8c90000 - 0x00007ffec8db7000 C:\WINDOWS\SYSTEM32\opengl32.dll
|
||||
0x00007ffed1f70000 - 0x00007ffed1f9c000 C:\WINDOWS\SYSTEM32\GLU32.dll
|
||||
0x00007ffe8e810000 - 0x00007ffe8f81f000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\ig9icd64.dll
|
||||
0x00007ffe89850000 - 0x00007ffe8bb3d000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\igc64.dll
|
||||
0x00007ffedb0f0000 - 0x00007ffedb245000 C:\WINDOWS\System32\ole32.dll
|
||||
0x00007ffecdb80000 - 0x00007ffecdc9d000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\igdgmm64.dll
|
||||
0x00007ffecfa90000 - 0x00007ffecfae8000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\lwjgl_opengl.dll
|
||||
0x00007ffec9d60000 - 0x00007ffec9df5000 C:\WINDOWS\System32\TextInputFramework.dll
|
||||
0x00007ffec4220000 - 0x00007ffec428c000 C:\WINDOWS\system32\Oleacc.dll
|
||||
0x00007ffecf520000 - 0x00007ffecf59f000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\lwjgl_stb.dll
|
||||
0x00007ffecf380000 - 0x00007ffecf519000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\awt.dll
|
||||
0x00007ffed69c0000 - 0x00007ffed6a4c000 C:\WINDOWS\SYSTEM32\apphelp.dll
|
||||
0x00007ffed7b70000 - 0x00007ffed7ba3000 C:\WINDOWS\system32\rsaenh.dll
|
||||
0x00007ffed8630000 - 0x00007ffed8658000 C:\WINDOWS\SYSTEM32\USERENV.dll
|
||||
0x00007ffed7d10000 - 0x00007ffed7d4d000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
|
||||
0x00007ffedb670000 - 0x00007ffedb678000 C:\WINDOWS\System32\NSI.dll
|
||||
0x00007ffecc160000 - 0x00007ffecc176000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
|
||||
0x00007ffecc0c0000 - 0x00007ffecc0dc000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
|
||||
0x00007ffed7d50000 - 0x00007ffed7e16000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
|
||||
0x00007ffed4ea0000 - 0x00007ffed508d000 C:\WINDOWS\SYSTEM32\dbghelp.dll
|
||||
|
||||
VM Arguments:
|
||||
jvm_args: -Dfile.encoding=Cp1252
|
||||
java_command: io.github.hydos.ginger.Starter -Djava.security.auth.login.config==theconfig.config
|
||||
java_class_path (initial): C:\Users\hayde\Desktop\dev\eclipse\ginger\target\classes;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl\3.2.2\lwjgl-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-assimp\3.2.2\lwjgl-assimp-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-bgfx\3.2.2\lwjgl-bgfx-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-glfw\3.2.2\lwjgl-glfw-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nanovg\3.2.2\lwjgl-nanovg-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nuklear\3.2.2\lwjgl-nuklear-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openal\3.2.2\lwjgl-openal-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-opengl\3.2.2\lwjgl-opengl-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openvr\3.2.2\lwjgl-openvr-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-par\3.2.2\lwjgl-par-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-stb\3.2.2\lwjgl-stb-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl\3.2.2\lwjgl-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-assimp\3.2.2\lwjgl-assimp-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-bgfx\3.2.2\lwjgl-bgfx-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-glfw\3.2.2\lwjgl-glfw-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nanovg\3.2.2\lwjgl-nanovg-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nuklear\3.2.2\lwjgl-nuklear-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openal\3.2.2\lwjgl-openal-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-opengl\3.2.2\lwjgl-opengl-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openvr\3.2.2\lwjgl-openvr-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-par\3.2.2\lwjgl-par-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-stb\3.2.2\lwjgl-stb-3.2.2-natives-windows.ja
|
||||
Launcher Type: SUN_STANDARD
|
||||
|
||||
Environment Variables:
|
||||
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_191
|
||||
PATH=C:/Program Files/Java/jre1.8.0_191/bin/server;C:/Program Files/Java/jre1.8.0_191/bin;C:/Program Files/Java/jre1.8.0_191/lib/amd64;C:\gradle\bin;C:\Users\hayde\Desktop\diffutils\bin;C:\Nintendo3DS\Programs\Python\Lib\site-packages\PyQt4;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Nintendo3DS\Programs\devkitPro\msys2\usr\bin;C:\Nintendo3DS\Programs\devkitARM\bin;C:\Nintendo3DS\Programs\Git\cmd;C:\Nintendo3DS\Programs\Python;C:\Nintendo3DS\Programs\Python\Scripts;C:\Nintendo3DS\Programs\MinGW\msys\1.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Nintendo\Nintendo Dev Interface;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\hayde\AppData\Local\Programs\Python\Python36;C:\Program Files\PuTTY\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Brackets\command;C:\ant\bin;C:\Program Files\dotnet\;C:\ProgramData\chocolatey\bin;C:\Users\hayde\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\hayde\AppData\Local\Programs\Python\Python36\;C:\Users\hayde\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\hayde\AppData\Local\Programs\Python\Python36-32\;C:\Users\hayde\AppData\Local\Microsoft\WindowsApps;C:\Users\hayde\AppData\Local\GitHubDesktop\bin;C:\maven\bin;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\hayde\AppData\Local\Programs\Python\Python37\Scripts;C:\Users\hayde\AppData\Roaming\npm;C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.1\bin;;C:\Program Files\JetBrains\PhpStorm 2019.1.1\bin;;C:\Users\hayde\AppData\Local\Microsoft\WindowsApps;C:\devkitPro\devkitARM\bin;;C:\Users\hayde\AppData\Local\Programs\Microsoft VS Code\bin;C:\WINDOWS\System32;
|
||||
USERNAME=hayde
|
||||
OS=Windows_NT
|
||||
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 78 Stepping 3, GenuineIntel
|
||||
|
||||
|
||||
|
||||
--------------- S Y S T E M ---------------
|
||||
|
||||
OS: Windows 10.0 , 64 bit Build 17763 (10.0.17763.437)
|
||||
|
||||
CPU:total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 78 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
|
||||
|
||||
Memory: 4k page, physical 8312096k(910112k free), swap 16147768k(3779468k free)
|
||||
|
||||
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.201-b09) for windows-amd64 JRE (1.8.0_201-b09), built on Dec 15 2018 18:36:39 by "java_re" with MS VC++ 10.0 (VS2010)
|
||||
|
||||
time: Sun May 26 15:12:31 2019
|
||||
timezone: E. Australia Standard Time
|
||||
elapsed time: 4 seconds (0d 0h 0m 4s)
|
||||
|
|
@ -0,0 +1,430 @@
|
|||
#
|
||||
# A fatal error has been detected by the Java Runtime Environment:
|
||||
#
|
||||
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffe8e967366, pid=78164, tid=0x0000000000012874
|
||||
#
|
||||
# JRE version: Java(TM) SE Runtime Environment (8.0_201-b09) (build 1.8.0_201-b09)
|
||||
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.201-b09 mixed mode windows-amd64 compressed oops)
|
||||
# Problematic frame:
|
||||
# C [ig9icd64.dll+0x157366]
|
||||
#
|
||||
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
|
||||
#
|
||||
# If you would like to submit a bug report, please visit:
|
||||
# http://bugreport.java.com/bugreport/crash.jsp
|
||||
# The crash happened outside the Java Virtual Machine in native code.
|
||||
# See problematic frame for where to report the bug.
|
||||
#
|
||||
|
||||
--------------- T H R E A D ---------------
|
||||
|
||||
Current thread (0x0000000002c33800): JavaThread "main" [_thread_in_native, id=75892, stack(0x0000000002a60000,0x0000000002b60000)]
|
||||
|
||||
siginfo: ExceptionCode=0xc0000005, reading address 0x000000002c494000
|
||||
|
||||
Registers:
|
||||
RAX=0x000000000000601f, RBX=0x0000000002b5e550, RCX=0x0000000000000000, RDX=0x000000002c493fc0
|
||||
RSP=0x0000000002b5e460, RBP=0x0000000002b5e5c0, RSI=0x000000002a8d0000, RDI=0x000000002abd0f80
|
||||
R8 =0x0000000000400000, R9 =0x0000000000008000, R10=0x0000000000006020, R11=0x0000000023f58a24
|
||||
R12=0x0000000000000000, R13=0x0000000002b5e6e0, R14=0x0000000000000400, R15=0x00000000000001c1
|
||||
RIP=0x00007ffe8e967366, EFLAGS=0x0000000000010213
|
||||
|
||||
Top of Stack: (sp=0x0000000002b5e460)
|
||||
0x0000000002b5e460: 00000000d8f95078 0000000000000000
|
||||
0x0000000002b5e470: 00000000d8f95060 0000000000000000
|
||||
0x0000000002b5e480: 000000002c193040 00007ffe8ed0795c
|
||||
0x0000000002b5e490: 0000000002b5e640 000000002c193040
|
||||
0x0000000002b5e4a0: 00007ffe8ed07600 0000000002b5e6e0
|
||||
0x0000000002b5e4b0: 0000000000000000 00007ffe8ed0a2a3
|
||||
0x0000000002b5e4c0: 0000000002b5e5c0 0000000002b5e6a0
|
||||
0x0000000002b5e4d0: 000000002a8d0000 00007ffe8ed08910
|
||||
0x0000000002b5e4e0: 400037c040000049 0000000000000001
|
||||
0x0000000002b5e4f0: 000000002c193040 0000000000000000
|
||||
0x0000000002b5e500: 0000000000000000 00007ffe8e83436b
|
||||
0x0000000002b5e510: 0000000025d85400 0000000000000001
|
||||
0x0000000002b5e520: 0000000001058c60 0000000000000001
|
||||
0x0000000002b5e530: 0000000000000001 0000000000000000
|
||||
0x0000000002b5e540: 0000000002b5e600 0000000024252d70
|
||||
0x0000000002b5e550: 00007ffe8f375ca0 0000000023f3fd40
|
||||
|
||||
Instructions: (pc=0x00007ffe8e967366)
|
||||
0x00007ffe8e967346: 66 66 0f 1f 84 00 00 00 00 00 f3 0f 6f 3a 41 ff
|
||||
0x00007ffe8e967356: c2 f3 0f 6f 72 10 f3 0f 6f 6a 20 f3 0f 6f 62 30
|
||||
0x00007ffe8e967366: f3 0f 6f 5a 40 f3 0f 6f 52 50 f3 0f 6f 4a 60 f3
|
||||
0x00007ffe8e967376: 0f 6f 42 70 48 83 ea 80 66 0f e7 3f 66 0f e7 77
|
||||
|
||||
|
||||
Register to memory mapping:
|
||||
|
||||
RAX=0x000000000000601f is an unknown value
|
||||
RBX=0x0000000002b5e550 is pointing into the stack for thread: 0x0000000002c33800
|
||||
RCX=0x0000000000000000 is an unknown value
|
||||
RDX=0x000000002c493fc0 is an unknown value
|
||||
RSP=0x0000000002b5e460 is pointing into the stack for thread: 0x0000000002c33800
|
||||
RBP=0x0000000002b5e5c0 is pointing into the stack for thread: 0x0000000002c33800
|
||||
RSI=0x000000002a8d0000 is an unknown value
|
||||
RDI=0x000000002abd0f80 is an unknown value
|
||||
R8 =0x0000000000400000 is an unknown value
|
||||
R9 =0x0000000000008000 is an unknown value
|
||||
R10=0x0000000000006020 is an unknown value
|
||||
R11=0x0000000023f58a24 is an unknown value
|
||||
R12=0x0000000000000000 is an unknown value
|
||||
R13=0x0000000002b5e6e0 is pointing into the stack for thread: 0x0000000002c33800
|
||||
R14=0x0000000000000400 is an unknown value
|
||||
R15=0x00000000000001c1 is an unknown value
|
||||
|
||||
|
||||
Stack: [0x0000000002a60000,0x0000000002b60000], sp=0x0000000002b5e460, free space=1017k
|
||||
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
|
||||
C [ig9icd64.dll+0x157366]
|
||||
C [ig9icd64.dll+0x4f795c]
|
||||
C [ig9icd64.dll+0x4fa2a3]
|
||||
C [ig9icd64.dll+0x4ff938]
|
||||
C [ig9icd64.dll+0x39f3af]
|
||||
C [ig9icd64.dll+0x35aa9a]
|
||||
C [ig9icd64.dll+0x1b4428]
|
||||
C [ig9icd64.dll+0x1aa4a3]
|
||||
C [ig9icd64.dll+0x1a741d]
|
||||
C [ig9icd64.dll+0xecd03]
|
||||
C [opengl32.dll+0x2e014]
|
||||
C [lwjgl_opengl.dll+0xcab5]
|
||||
C 0x0000000002d48c67
|
||||
|
||||
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
|
||||
j org.lwjgl.opengl.GL11C.nglTexImage2D(IIIIIIIIJ)V+0
|
||||
j org.lwjgl.opengl.GL11C.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V+17
|
||||
j org.lwjgl.opengl.GL11.glTexImage2D(IIIIIIIILjava/nio/ByteBuffer;)V+14
|
||||
j io.github.hydos.ginger.renderEngine.texture.ModelTexture.<init>(Ljava/lang/String;)V+126
|
||||
j io.github.hydos.ginger.Example.main([Ljava/lang/String;)V+511
|
||||
j io.github.hydos.ginger.Starter.main([Ljava/lang/String;)V+8
|
||||
v ~StubRoutines::call_stub
|
||||
|
||||
--------------- P R O C E S S ---------------
|
||||
|
||||
Java Threads: ( => current thread )
|
||||
0x0000000019859800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=75492, stack(0x0000000028f20000,0x0000000029020000)]
|
||||
0x000000001790d800 JavaThread "Service Thread" daemon [_thread_blocked, id=78508, stack(0x0000000019600000,0x0000000019700000)]
|
||||
0x0000000019110800 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=39804, stack(0x0000000019500000,0x0000000019600000)]
|
||||
0x0000000017908000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=6560, stack(0x0000000019000000,0x0000000019100000)]
|
||||
0x00000000178ba800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=66076, stack(0x0000000018f00000,0x0000000019000000)]
|
||||
0x00000000178b8800 JavaThread "Attach Listener" daemon [_thread_blocked, id=74880, stack(0x0000000018e00000,0x0000000018f00000)]
|
||||
0x00000000178b5800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=78480, stack(0x0000000018d00000,0x0000000018e00000)]
|
||||
0x0000000002d2c800 JavaThread "Finalizer" daemon [_thread_blocked, id=52260, stack(0x0000000018b00000,0x0000000018c00000)]
|
||||
0x0000000002d24000 JavaThread "Reference Handler" daemon [_thread_blocked, id=77064, stack(0x0000000018a00000,0x0000000018b00000)]
|
||||
=>0x0000000002c33800 JavaThread "main" [_thread_in_native, id=75892, stack(0x0000000002a60000,0x0000000002b60000)]
|
||||
|
||||
Other Threads:
|
||||
0x0000000017877000 VMThread [stack: 0x0000000018900000,0x0000000018a00000] [id=78816]
|
||||
0x0000000019125800 WatcherThread [stack: 0x0000000019700000,0x0000000019800000] [id=26412]
|
||||
|
||||
VM state:not at safepoint (normal execution)
|
||||
|
||||
VM Mutex/Monitor currently owned by a thread: None
|
||||
|
||||
heap address: 0x0000000081200000, size: 2030 MB, Compressed Oops mode: 32-bit
|
||||
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3
|
||||
Compressed class space size: 1073741824 Address: 0x0000000100000000
|
||||
|
||||
Heap:
|
||||
PSYoungGen total 142336K, used 22762K [0x00000000d5b80000, 0x00000000df380000, 0x0000000100000000)
|
||||
eden space 132096K, 9% used [0x00000000d5b80000,0x00000000d6849288,0x00000000ddc80000)
|
||||
from space 10240K, 94% used [0x00000000de780000,0x00000000df0f16f0,0x00000000df180000)
|
||||
to space 11264K, 0% used [0x00000000ddc80000,0x00000000ddc80000,0x00000000de780000)
|
||||
ParOldGen total 87552K, used 8485K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a497a8,0x0000000086780000)
|
||||
Metaspace used 10634K, capacity 10839K, committed 11008K, reserved 1058816K
|
||||
class space used 933K, capacity 1007K, committed 1024K, reserved 1048576K
|
||||
|
||||
Card table byte_map: [0x00000000120f0000,0x00000000124f0000] byte_map_base: 0x0000000011ce7000
|
||||
|
||||
Marking Bits: (ParMarkBitMap*) 0x0000000054c84ce0
|
||||
Begin Bits: [0x0000000012ba0000, 0x0000000014b58000)
|
||||
End Bits: [0x0000000014b58000, 0x0000000016b10000)
|
||||
|
||||
Polling page: 0x0000000000f50000
|
||||
|
||||
CodeCache: size=245760Kb used=3977Kb max_used=3994Kb free=241782Kb
|
||||
bounds [0x0000000002d30000, 0x0000000003120000, 0x0000000011d30000]
|
||||
total_blobs=1881 nmethods=957 adapters=837
|
||||
compilation: enabled
|
||||
|
||||
Compilation events (10 events):
|
||||
Event: 4.591 Thread 0x0000000017908000 nmethod 929 0x00000000031128d0 code [0x0000000003112a60, 0x0000000003113758]
|
||||
Event: 4.591 Thread 0x0000000017908000 930 4 java.lang.String::trim (77 bytes)
|
||||
Event: 4.593 Thread 0x0000000017908000 nmethod 930 0x000000000310f7d0 code [0x000000000310f920, 0x000000000310fa38]
|
||||
Event: 4.593 Thread 0x0000000017908000 933 4 java.lang.Integer::parseInt (7 bytes)
|
||||
Event: 4.601 Thread 0x0000000017908000 nmethod 933 0x0000000003110850 code [0x00000000031109a0, 0x0000000003110e78]
|
||||
Event: 4.601 Thread 0x0000000017908000 949 4 io.github.hydos.ginger.mathEngine.vectors.Vector3f::set (16 bytes)
|
||||
Event: 4.601 Thread 0x0000000017908000 nmethod 949 0x00000000030f3dd0 code [0x00000000030f3f00, 0x00000000030f3f78]
|
||||
Event: 4.601 Thread 0x0000000017908000 953 4 io.github.hydos.ginger.mathEngine.vectors.Vector::normalise (31 bytes)
|
||||
Event: 4.602 Thread 0x0000000017908000 nmethod 953 0x000000000310ef90 code [0x000000000310f100, 0x000000000310f218]
|
||||
Event: 4.611 Thread 0x00000000178ba800 nmethod 924 0x0000000003118f50 code [0x0000000003119260, 0x000000000311aa80]
|
||||
|
||||
GC Heap History (10 events):
|
||||
Event: 2.650 GC heap before
|
||||
{Heap before GC invocations=2 (full 0):
|
||||
PSYoungGen total 38400K, used 38261K [0x00000000d5b80000, 0x00000000d8600000, 0x0000000100000000)
|
||||
eden space 33280K, 100% used [0x00000000d5b80000,0x00000000d7c00000,0x00000000d7c00000)
|
||||
from space 5120K, 97% used [0x00000000d7c00000,0x00000000d80dd540,0x00000000d8100000)
|
||||
to space 5120K, 0% used [0x00000000d8100000,0x00000000d8100000,0x00000000d8600000)
|
||||
ParOldGen total 87552K, used 16K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 0% used [0x0000000081200000,0x0000000081204000,0x0000000086780000)
|
||||
Metaspace used 9147K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 2.657 GC heap after
|
||||
Heap after GC invocations=2 (full 0):
|
||||
PSYoungGen total 38400K, used 5100K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d8100000,0x00000000d85fb348,0x00000000d8600000)
|
||||
to space 5120K, 0% used [0x00000000d7c00000,0x00000000d7c00000,0x00000000d8100000)
|
||||
ParOldGen total 87552K, used 600K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 0% used [0x0000000081200000,0x0000000081296000,0x0000000086780000)
|
||||
Metaspace used 9147K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 2.703 GC heap before
|
||||
{Heap before GC invocations=3 (full 0):
|
||||
PSYoungGen total 38400K, used 38380K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 100% used [0x00000000d5b80000,0x00000000d7c00000,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d8100000,0x00000000d85fb348,0x00000000d8600000)
|
||||
to space 5120K, 0% used [0x00000000d7c00000,0x00000000d7c00000,0x00000000d8100000)
|
||||
ParOldGen total 87552K, used 600K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 0% used [0x0000000081200000,0x0000000081296000,0x0000000086780000)
|
||||
Metaspace used 9151K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 2.709 GC heap after
|
||||
Heap after GC invocations=3 (full 0):
|
||||
PSYoungGen total 38400K, used 5106K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d7c00000,0x00000000d80fc840,0x00000000d8100000)
|
||||
to space 5120K, 0% used [0x00000000da180000,0x00000000da180000,0x00000000da680000)
|
||||
ParOldGen total 87552K, used 1872K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 2% used [0x0000000081200000,0x00000000813d4000,0x0000000086780000)
|
||||
Metaspace used 9151K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 2.771 GC heap before
|
||||
{Heap before GC invocations=4 (full 0):
|
||||
PSYoungGen total 38400K, used 38039K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 33280K, 98% used [0x00000000d5b80000,0x00000000d7ba9408,0x00000000d7c00000)
|
||||
from space 5120K, 99% used [0x00000000d7c00000,0x00000000d80fc840,0x00000000d8100000)
|
||||
to space 5120K, 0% used [0x00000000da180000,0x00000000da180000,0x00000000da680000)
|
||||
ParOldGen total 87552K, used 1872K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 2% used [0x0000000081200000,0x00000000813d4000,0x0000000086780000)
|
||||
Metaspace used 9151K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 2.794 GC heap after
|
||||
Heap after GC invocations=4 (full 0):
|
||||
PSYoungGen total 71680K, used 5105K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 66560K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000da180000,0x00000000da67c6f0,0x00000000da680000)
|
||||
to space 5120K, 0% used [0x00000000d9c80000,0x00000000d9c80000,0x00000000da180000)
|
||||
ParOldGen total 87552K, used 3840K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 4% used [0x0000000081200000,0x00000000815c0000,0x0000000086780000)
|
||||
Metaspace used 9151K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 2.928 GC heap before
|
||||
{Heap before GC invocations=5 (full 0):
|
||||
PSYoungGen total 71680K, used 71665K [0x00000000d5b80000, 0x00000000da680000, 0x0000000100000000)
|
||||
eden space 66560K, 100% used [0x00000000d5b80000,0x00000000d9c80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000da180000,0x00000000da67c6f0,0x00000000da680000)
|
||||
to space 5120K, 0% used [0x00000000d9c80000,0x00000000d9c80000,0x00000000da180000)
|
||||
ParOldGen total 87552K, used 3840K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 4% used [0x0000000081200000,0x00000000815c0000,0x0000000086780000)
|
||||
Metaspace used 9151K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
Event: 3.027 GC heap after
|
||||
Heap after GC invocations=5 (full 0):
|
||||
PSYoungGen total 71680K, used 5096K [0x00000000d5b80000, 0x00000000df180000, 0x0000000100000000)
|
||||
eden space 66560K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000d9c80000,0x00000000da17a340,0x00000000da180000)
|
||||
to space 10240K, 0% used [0x00000000de780000,0x00000000de780000,0x00000000df180000)
|
||||
ParOldGen total 87552K, used 8485K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a497a8,0x0000000086780000)
|
||||
Metaspace used 9151K, capacity 9427K, committed 9600K, reserved 1058816K
|
||||
class space used 773K, capacity 877K, committed 896K, reserved 1048576K
|
||||
}
|
||||
Event: 4.460 GC heap before
|
||||
{Heap before GC invocations=6 (full 0):
|
||||
PSYoungGen total 71680K, used 71656K [0x00000000d5b80000, 0x00000000df180000, 0x0000000100000000)
|
||||
eden space 66560K, 100% used [0x00000000d5b80000,0x00000000d9c80000,0x00000000d9c80000)
|
||||
from space 5120K, 99% used [0x00000000d9c80000,0x00000000da17a340,0x00000000da180000)
|
||||
to space 10240K, 0% used [0x00000000de780000,0x00000000de780000,0x00000000df180000)
|
||||
ParOldGen total 87552K, used 8485K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a497a8,0x0000000086780000)
|
||||
Metaspace used 10565K, capacity 10775K, committed 11008K, reserved 1058816K
|
||||
class space used 928K, capacity 1007K, committed 1024K, reserved 1048576K
|
||||
Event: 4.474 GC heap after
|
||||
Heap after GC invocations=6 (full 0):
|
||||
PSYoungGen total 142336K, used 9669K [0x00000000d5b80000, 0x00000000df380000, 0x0000000100000000)
|
||||
eden space 132096K, 0% used [0x00000000d5b80000,0x00000000d5b80000,0x00000000ddc80000)
|
||||
from space 10240K, 94% used [0x00000000de780000,0x00000000df0f16f0,0x00000000df180000)
|
||||
to space 11264K, 0% used [0x00000000ddc80000,0x00000000ddc80000,0x00000000de780000)
|
||||
ParOldGen total 87552K, used 8485K [0x0000000081200000, 0x0000000086780000, 0x00000000d5b80000)
|
||||
object space 87552K, 9% used [0x0000000081200000,0x0000000081a497a8,0x0000000086780000)
|
||||
Metaspace used 10565K, capacity 10775K, committed 11008K, reserved 1058816K
|
||||
class space used 928K, capacity 1007K, committed 1024K, reserved 1048576K
|
||||
}
|
||||
|
||||
Deoptimization events (10 events):
|
||||
Event: 2.530 Thread 0x0000000002c33800 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000003056ae0 method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 119
|
||||
Event: 2.530 Thread 0x0000000002c33800 Uncommon trap: reason=array_check action=maybe_recompile pc=0x0000000003056ae0 method=java.util.AbstractCollection.toArray([Ljava/lang/Object;)[Ljava/lang/Object; @ 119
|
||||
Event: 3.137 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003087b00 method=io.github.hydos.ginger.obj.OBJFileLoader.removeUnusedVertices(Ljava/util/List;)V @ 13
|
||||
Event: 3.239 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000308f1e8 method=io.github.hydos.ginger.obj.OBJFileLoader.convertDataToArrays(Ljava/util/List;Ljava/util/List;Ljava/util/List;[F[F[F)F @ 14
|
||||
Event: 3.253 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003094284 method=io.github.hydos.ginger.obj.OBJFileLoader.convertIndicesListToArray(Ljava/util/List;)[I @ 14
|
||||
Event: 3.321 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000304be74 method=sun.misc.FloatingDecimal.readJavaFormatString(Ljava/lang/String;)Lsun/misc/FloatingDecimal$ASCIIToBinaryConverter; @ 733
|
||||
Event: 3.321 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000003094c6c method=io.github.hydos.ginger.obj.OBJFileLoader.removeUnusedVertices(Ljava/util/List;)V @ 13
|
||||
Event: 3.321 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030909a0 method=io.github.hydos.ginger.obj.OBJFileLoader.convertDataToArrays(Ljava/util/List;Ljava/util/List;Ljava/util/List;[F[F[F)F @ 14
|
||||
Event: 3.321 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000308e06c method=io.github.hydos.ginger.obj.OBJFileLoader.convertIndicesListToArray(Ljava/util/List;)[I @ 14
|
||||
Event: 4.512 Thread 0x0000000002c33800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000030f16e0 method=io.github.hydos.ginger.terrain.Terrain.getHeight(IILjava/awt/image/BufferedImage;)F @ 21
|
||||
|
||||
Classes redefined (0 events):
|
||||
No events
|
||||
|
||||
Internal exceptions (10 events):
|
||||
Event: 0.561 Thread 0x0000000002c33800 Exception <a 'java/lang/NoSuchFieldError': method resolution failed> (0x00000000d5e35408) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\methodHandles.cpp, line 1167]
|
||||
Event: 0.565 Thread 0x0000000002c33800 Exception <a 'java/lang/NoSuchFieldError': method resolution failed> (0x00000000d5e42808) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\methodHandles.cpp, line 1167]
|
||||
Event: 0.660 Thread 0x0000000002c33800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f895b8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 0.660 Thread 0x0000000002c33800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f897c8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 0.661 Thread 0x0000000002c33800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f8d6d8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 0.661 Thread 0x0000000002c33800 Exception <a 'java/security/PrivilegedActionException'> (0x00000000d5f8d8e8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jvm.cpp, line 1502]
|
||||
Event: 1.317 Thread 0x0000000002c33800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000d6242410) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jni.cpp, line 709]
|
||||
Event: 1.318 Thread 0x0000000002c33800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000d6242bf8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jni.cpp, line 709]
|
||||
Event: 2.468 Thread 0x0000000002c33800 Implicit null exception at 0x00000000030435da to 0x0000000003043d61
|
||||
Event: 3.757 Thread 0x0000000002c33800 Exception <a 'java/io/FileNotFoundException'> (0x00000000d8fd3fa0) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u201\12322\hotspot\src\share\vm\prims\jni.cpp, line 709]
|
||||
|
||||
Events (10 events):
|
||||
Event: 4.553 loading class org/lwjgl/system/CallbackI
|
||||
Event: 4.553 loading class org/lwjgl/system/CallbackI done
|
||||
Event: 4.554 loading class io/github/hydos/ginger/guis/GuiTexture
|
||||
Event: 4.554 loading class io/github/hydos/ginger/guis/GuiTexture done
|
||||
Event: 4.558 loading class io/github/hydos/ginger/renderEngine/tools/MousePicker
|
||||
Event: 4.558 loading class io/github/hydos/ginger/renderEngine/tools/MousePicker done
|
||||
Event: 4.559 loading class io/github/hydos/ginger/normals/obj/NormalMappedObjLoader
|
||||
Event: 4.559 loading class io/github/hydos/ginger/normals/obj/NormalMappedObjLoader done
|
||||
Event: 4.561 loading class io/github/hydos/ginger/normals/obj/VertexNM
|
||||
Event: 4.561 loading class io/github/hydos/ginger/normals/obj/VertexNM done
|
||||
|
||||
|
||||
Dynamic libraries:
|
||||
0x00007ff6a1680000 - 0x00007ff6a16b7000 C:\Program Files\Java\jdk1.8.0_201\bin\javaw.exe
|
||||
0x00007ffedc730000 - 0x00007ffedc91d000 C:\WINDOWS\SYSTEM32\ntdll.dll
|
||||
0x00007ffedb680000 - 0x00007ffedb733000 C:\WINDOWS\System32\KERNEL32.DLL
|
||||
0x00007ffed95e0000 - 0x00007ffed9873000 C:\WINDOWS\System32\KERNELBASE.dll
|
||||
0x00007ffed9960000 - 0x00007ffed9a03000 C:\WINDOWS\System32\ADVAPI32.dll
|
||||
0x00007ffedb430000 - 0x00007ffedb4ce000 C:\WINDOWS\System32\msvcrt.dll
|
||||
0x00007ffedafd0000 - 0x00007ffedb06e000 C:\WINDOWS\System32\sechost.dll
|
||||
0x00007ffedbc90000 - 0x00007ffedbdb2000 C:\WINDOWS\System32\RPCRT4.dll
|
||||
0x00007ffedb7c0000 - 0x00007ffedb957000 C:\WINDOWS\System32\USER32.dll
|
||||
0x00007ffed8800000 - 0x00007ffed8820000 C:\WINDOWS\System32\win32u.dll
|
||||
0x00007ffedbdc0000 - 0x00007ffedbde9000 C:\WINDOWS\System32\GDI32.dll
|
||||
0x00007ffed8820000 - 0x00007ffed89ba000 C:\WINDOWS\System32\gdi32full.dll
|
||||
0x00007ffed89c0000 - 0x00007ffed8a60000 C:\WINDOWS\System32\msvcp_win.dll
|
||||
0x00007ffed9280000 - 0x00007ffed937a000 C:\WINDOWS\System32\ucrtbase.dll
|
||||
0x00007ffec64f0000 - 0x00007ffec6769000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17763.437_none_05b63dca071e5dd6\COMCTL32.dll
|
||||
0x00007ffedb960000 - 0x00007ffedbc8c000 C:\WINDOWS\System32\combase.dll
|
||||
0x00007ffed9560000 - 0x00007ffed95de000 C:\WINDOWS\System32\bcryptPrimitives.dll
|
||||
0x00007ffedb2b0000 - 0x00007ffedb2de000 C:\WINDOWS\System32\IMM32.DLL
|
||||
0x0000000054d10000 - 0x0000000054de1000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\msvcr100.dll
|
||||
0x0000000054460000 - 0x0000000054d04000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\server\jvm.dll
|
||||
0x00007ffedb3b0000 - 0x00007ffedb3b8000 C:\WINDOWS\System32\PSAPI.DLL
|
||||
0x00007ffec3050000 - 0x00007ffec3059000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
|
||||
0x00007ffedb600000 - 0x00007ffedb66d000 C:\WINDOWS\System32\WS2_32.dll
|
||||
0x00007ffed68b0000 - 0x00007ffed68d4000 C:\WINDOWS\SYSTEM32\WINMM.dll
|
||||
0x00007ffed6850000 - 0x00007ffed687d000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
|
||||
0x00007ffed91b0000 - 0x00007ffed91fa000 C:\WINDOWS\System32\cfgmgr32.dll
|
||||
0x00007ffeca990000 - 0x00007ffeca99a000 C:\WINDOWS\SYSTEM32\VERSION.dll
|
||||
0x00007ffed6500000 - 0x00007ffed650f000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\verify.dll
|
||||
0x00007ffed2560000 - 0x00007ffed2589000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\java.dll
|
||||
0x00007ffed30d0000 - 0x00007ffed30e6000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\zip.dll
|
||||
0x00007ffed9a10000 - 0x00007ffedaf00000 C:\WINDOWS\System32\SHELL32.dll
|
||||
0x00007ffedb2e0000 - 0x00007ffedb388000 C:\WINDOWS\System32\shcore.dll
|
||||
0x00007ffed8a60000 - 0x00007ffed91aa000 C:\WINDOWS\System32\windows.storage.dll
|
||||
0x00007ffed87d0000 - 0x00007ffed87f4000 C:\WINDOWS\System32\profapi.dll
|
||||
0x00007ffed8770000 - 0x00007ffed87cd000 C:\WINDOWS\System32\powrprof.dll
|
||||
0x00007ffedc640000 - 0x00007ffedc692000 C:\WINDOWS\System32\shlwapi.dll
|
||||
0x00007ffed8730000 - 0x00007ffed8741000 C:\WINDOWS\System32\kernel.appcore.dll
|
||||
0x00007ffed9200000 - 0x00007ffed9217000 C:\WINDOWS\System32\cryptsp.dll
|
||||
0x00007ffed0e70000 - 0x00007ffed0e8a000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\net.dll
|
||||
0x00007ffec8480000 - 0x00007ffec8656000 C:\WINDOWS\SYSTEM32\urlmon.dll
|
||||
0x00007ffec8870000 - 0x00007ffec8b18000 C:\WINDOWS\SYSTEM32\iertutil.dll
|
||||
0x00007ffed8180000 - 0x00007ffed818c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
|
||||
0x00007ffed7fb0000 - 0x00007ffed8017000 C:\WINDOWS\system32\mswsock.dll
|
||||
0x00007ffed0e50000 - 0x00007ffed0e61000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\nio.dll
|
||||
0x00007ffecffc0000 - 0x00007ffed0032000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\lwjgl.dll
|
||||
0x00007ffecf540000 - 0x00007ffecf59e000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\glfw.dll
|
||||
0x00007ffed6cf0000 - 0x00007ffed6d8c000 C:\WINDOWS\system32\uxtheme.dll
|
||||
0x00007ffecf4f0000 - 0x00007ffecf534000 C:\WINDOWS\SYSTEM32\dinput8.dll
|
||||
0x00007ffed0e10000 - 0x00007ffed0e21000 C:\WINDOWS\SYSTEM32\xinput1_4.dll
|
||||
0x00007ffed8540000 - 0x00007ffed8569000 C:\WINDOWS\SYSTEM32\DEVOBJ.dll
|
||||
0x00007ffed6de0000 - 0x00007ffed6e0e000 C:\WINDOWS\SYSTEM32\dwmapi.dll
|
||||
0x00007ffed9380000 - 0x00007ffed955b000 C:\WINDOWS\System32\CRYPT32.dll
|
||||
0x00007ffed8750000 - 0x00007ffed8762000 C:\WINDOWS\System32\MSASN1.dll
|
||||
0x00007ffec9c90000 - 0x00007ffec9d5c000 C:\WINDOWS\SYSTEM32\inputhost.dll
|
||||
0x00007ffed63f0000 - 0x00007ffed64d2000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
|
||||
0x00007ffed6ec0000 - 0x00007ffed70cd000 C:\WINDOWS\SYSTEM32\twinapi.appcore.dll
|
||||
0x00007ffed3eb0000 - 0x00007ffed41d2000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
|
||||
0x00007ffed5a20000 - 0x00007ffed5fde000 C:\WINDOWS\SYSTEM32\d2d1.dll
|
||||
0x00007ffed5110000 - 0x00007ffed52b8000 C:\WINDOWS\SYSTEM32\PROPSYS.dll
|
||||
0x00007ffed57a0000 - 0x00007ffed5a1e000 C:\WINDOWS\SYSTEM32\d3d11.dll
|
||||
0x00007ffedaf00000 - 0x00007ffedafc4000 C:\WINDOWS\System32\OLEAUT32.dll
|
||||
0x00007ffed70d0000 - 0x00007ffed70f8000 C:\WINDOWS\SYSTEM32\RMCLIENT.dll
|
||||
0x00007ffed4440000 - 0x00007ffed4593000 C:\WINDOWS\SYSTEM32\wintypes.dll
|
||||
0x00007ffed77d0000 - 0x00007ffed7801000 C:\WINDOWS\SYSTEM32\ntmarta.dll
|
||||
0x00007ffed7440000 - 0x00007ffed7502000 C:\WINDOWS\SYSTEM32\dxgi.dll
|
||||
0x00007ffedc420000 - 0x00007ffedc58a000 C:\WINDOWS\System32\MSCTF.dll
|
||||
0x00007ffed73e0000 - 0x00007ffed73ee000 C:\WINDOWS\SYSTEM32\HID.DLL
|
||||
0x00007ffedbfa0000 - 0x00007ffedc416000 C:\WINDOWS\System32\SETUPAPI.DLL
|
||||
0x00007ffed9930000 - 0x00007ffed9956000 C:\WINDOWS\System32\bcrypt.dll
|
||||
0x00007ffed9220000 - 0x00007ffed9279000 C:\WINDOWS\System32\WINTRUST.dll
|
||||
0x00007ffec8c90000 - 0x00007ffec8db7000 C:\WINDOWS\SYSTEM32\opengl32.dll
|
||||
0x00007ffed1f70000 - 0x00007ffed1f9c000 C:\WINDOWS\SYSTEM32\GLU32.dll
|
||||
0x00007ffe8e810000 - 0x00007ffe8f81f000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\ig9icd64.dll
|
||||
0x00007ffe89850000 - 0x00007ffe8bb3d000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\igc64.dll
|
||||
0x00007ffedb0f0000 - 0x00007ffedb245000 C:\WINDOWS\System32\ole32.dll
|
||||
0x00007ffecdb80000 - 0x00007ffecdc9d000 C:\WINDOWS\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_27edf49b9e5b5b9c\igdgmm64.dll
|
||||
0x00007ffecf490000 - 0x00007ffecf4e8000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\lwjgl_opengl.dll
|
||||
0x00007ffec9d60000 - 0x00007ffec9df5000 C:\WINDOWS\System32\TextInputFramework.dll
|
||||
0x00007ffec4220000 - 0x00007ffec428c000 C:\WINDOWS\system32\Oleacc.dll
|
||||
0x00007ffecf410000 - 0x00007ffecf48f000 C:\Users\hayde\AppData\Local\Temp\lwjglhayde\3.2.2-build-10\lwjgl_stb.dll
|
||||
0x00007ffea08d0000 - 0x00007ffea0a69000 C:\Program Files\Java\jdk1.8.0_201\jre\bin\awt.dll
|
||||
0x00007ffed69c0000 - 0x00007ffed6a4c000 C:\WINDOWS\SYSTEM32\apphelp.dll
|
||||
0x00007ffed7b70000 - 0x00007ffed7ba3000 C:\WINDOWS\system32\rsaenh.dll
|
||||
0x00007ffed8630000 - 0x00007ffed8658000 C:\WINDOWS\SYSTEM32\USERENV.dll
|
||||
0x00007ffed7d10000 - 0x00007ffed7d4d000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
|
||||
0x00007ffedb670000 - 0x00007ffedb678000 C:\WINDOWS\System32\NSI.dll
|
||||
0x00007ffecc160000 - 0x00007ffecc176000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
|
||||
0x00007ffecc0c0000 - 0x00007ffecc0dc000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
|
||||
0x00007ffed7d50000 - 0x00007ffed7e16000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
|
||||
0x00007ffed4ea0000 - 0x00007ffed508d000 C:\WINDOWS\SYSTEM32\dbghelp.dll
|
||||
|
||||
VM Arguments:
|
||||
jvm_args: -Dfile.encoding=Cp1252
|
||||
java_command: io.github.hydos.ginger.Starter -Djava.security.auth.login.config==theconfig.config
|
||||
java_class_path (initial): C:\Users\hayde\Desktop\dev\eclipse\ginger\target\classes;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl\3.2.2\lwjgl-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-assimp\3.2.2\lwjgl-assimp-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-bgfx\3.2.2\lwjgl-bgfx-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-glfw\3.2.2\lwjgl-glfw-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nanovg\3.2.2\lwjgl-nanovg-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nuklear\3.2.2\lwjgl-nuklear-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openal\3.2.2\lwjgl-openal-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-opengl\3.2.2\lwjgl-opengl-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openvr\3.2.2\lwjgl-openvr-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-par\3.2.2\lwjgl-par-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-stb\3.2.2\lwjgl-stb-3.2.2.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl\3.2.2\lwjgl-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-assimp\3.2.2\lwjgl-assimp-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-bgfx\3.2.2\lwjgl-bgfx-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-glfw\3.2.2\lwjgl-glfw-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nanovg\3.2.2\lwjgl-nanovg-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-nuklear\3.2.2\lwjgl-nuklear-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openal\3.2.2\lwjgl-openal-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-opengl\3.2.2\lwjgl-opengl-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-openvr\3.2.2\lwjgl-openvr-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-par\3.2.2\lwjgl-par-3.2.2-natives-windows.jar;C:\Users\hayde\.m2\repository\org\lwjgl\lwjgl-stb\3.2.2\lwjgl-stb-3.2.2-natives-windows.ja
|
||||
Launcher Type: SUN_STANDARD
|
||||
|
||||
Environment Variables:
|
||||
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_191
|
||||
PATH=C:/Program Files/Java/jre1.8.0_191/bin/server;C:/Program Files/Java/jre1.8.0_191/bin;C:/Program Files/Java/jre1.8.0_191/lib/amd64;C:\gradle\bin;C:\Users\hayde\Desktop\diffutils\bin;C:\Nintendo3DS\Programs\Python\Lib\site-packages\PyQt4;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Nintendo3DS\Programs\devkitPro\msys2\usr\bin;C:\Nintendo3DS\Programs\devkitARM\bin;C:\Nintendo3DS\Programs\Git\cmd;C:\Nintendo3DS\Programs\Python;C:\Nintendo3DS\Programs\Python\Scripts;C:\Nintendo3DS\Programs\MinGW\msys\1.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Nintendo\Nintendo Dev Interface;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\hayde\AppData\Local\Programs\Python\Python36;C:\Program Files\PuTTY\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Program Files\nodejs\;C:\Program Files (x86)\Brackets\command;C:\ant\bin;C:\Program Files\dotnet\;C:\ProgramData\chocolatey\bin;C:\Users\hayde\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\hayde\AppData\Local\Programs\Python\Python36\;C:\Users\hayde\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\hayde\AppData\Local\Programs\Python\Python36-32\;C:\Users\hayde\AppData\Local\Microsoft\WindowsApps;C:\Users\hayde\AppData\Local\GitHubDesktop\bin;C:\maven\bin;C:\Program Files\Java\jdk1.8.0_171\bin;C:\Users\hayde\AppData\Local\Programs\Python\Python37\Scripts;C:\Users\hayde\AppData\Roaming\npm;C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.1\bin;;C:\Program Files\JetBrains\PhpStorm 2019.1.1\bin;;C:\Users\hayde\AppData\Local\Microsoft\WindowsApps;C:\devkitPro\devkitARM\bin;;C:\Users\hayde\AppData\Local\Programs\Microsoft VS Code\bin;C:\WINDOWS\System32;
|
||||
USERNAME=hayde
|
||||
OS=Windows_NT
|
||||
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 78 Stepping 3, GenuineIntel
|
||||
|
||||
|
||||
|
||||
--------------- S Y S T E M ---------------
|
||||
|
||||
OS: Windows 10.0 , 64 bit Build 17763 (10.0.17763.437)
|
||||
|
||||
CPU:total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 78 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
|
||||
|
||||
Memory: 4k page, physical 8312096k(1067908k free), swap 16147768k(3517324k free)
|
||||
|
||||
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.201-b09) for windows-amd64 JRE (1.8.0_201-b09), built on Dec 15 2018 18:36:39 by "java_re" with MS VC++ 10.0 (VS2010)
|
||||
|
||||
time: Sun May 26 15:43:39 2019
|
||||
timezone: E. Australia Standard Time
|
||||
elapsed time: 5 seconds (0d 0h 0m 5s)
|
||||
|
|
@ -7,13 +7,18 @@ import io.github.hydos.ginger.elements.Entity;
|
|||
import io.github.hydos.ginger.elements.Light;
|
||||
import io.github.hydos.ginger.elements.Player;
|
||||
import io.github.hydos.ginger.elements.ThirdPersonCamera;
|
||||
import io.github.hydos.ginger.font.FontType;
|
||||
import io.github.hydos.ginger.font.GUIText;
|
||||
import io.github.hydos.ginger.font.TextMaster;
|
||||
import io.github.hydos.ginger.guis.GuiTexture;
|
||||
import io.github.hydos.ginger.io.Window;
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector2f;
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector3f;
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector4f;
|
||||
import io.github.hydos.ginger.obj.ModelLoader;
|
||||
import io.github.hydos.ginger.obj.normals.NormalMappedObjLoader;
|
||||
import io.github.hydos.ginger.renderEngine.MasterRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.models.TexturedModel;
|
||||
import io.github.hydos.ginger.renderEngine.renderers.MasterRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.texture.ModelTexture;
|
||||
import io.github.hydos.ginger.renderEngine.tools.MousePicker;
|
||||
import io.github.hydos.ginger.terrain.Terrain;
|
||||
|
@ -31,7 +36,9 @@ public class Example {
|
|||
|
||||
private List<Light> lights = new ArrayList<Light>();
|
||||
|
||||
private List<Entity> entities = new ArrayList<Entity>();
|
||||
private List<Entity> entities = new ArrayList<Entity>();
|
||||
|
||||
private List<Entity> normalMapEntities = new ArrayList<Entity>();
|
||||
|
||||
|
||||
public void main(String[] args) {
|
||||
|
@ -41,6 +48,13 @@ public class Example {
|
|||
|
||||
Window.setBackgroundColour(0.2f, 0.2f, 0.8f);
|
||||
|
||||
TextMaster.init();
|
||||
|
||||
FontType font = new FontType(Loader.loadFontAtlas("calibri.png"), "calibri.fnt");
|
||||
|
||||
GUIText text = new GUIText("hi this is some sample text", 1, font, new Vector2f(0,0), 1f, true);
|
||||
text.setColour(0, 1, 0);
|
||||
|
||||
masterRenderer = new MasterRenderer();
|
||||
|
||||
TexturedModel tModel = ModelLoader.loadModel("stall.obj", "stallTexture.png");
|
||||
|
@ -83,6 +97,14 @@ public class Example {
|
|||
|
||||
MousePicker picker = new MousePicker(camera, masterRenderer.getProjectionMatrix(), terrain);
|
||||
|
||||
|
||||
TexturedModel barrelModel = new TexturedModel(NormalMappedObjLoader.loadOBJ("barrel.obj"), new ModelTexture("barrel.png"));
|
||||
barrelModel.getTexture().setNormalMap(new ModelTexture("modelNormals/barrelNormal.png").getTextureID());
|
||||
barrelModel.getTexture().setShineDamper(10f);
|
||||
barrelModel.getTexture().setReflectivity(0.5f);
|
||||
|
||||
Entity barrel = new Entity(barrelModel, new Vector3f(1,terrain.getHeightOfTerrain(1, 1),1), 0, 0, 0, new Vector3f(0.25f,0.25f,0.25f));
|
||||
normalMapEntities.add(barrel);
|
||||
entities.add(entity);
|
||||
entities.add(dragon);
|
||||
|
||||
|
@ -98,11 +120,12 @@ public class Example {
|
|||
entity.move(terrain);
|
||||
Vector3f terrainPoint = picker.getCurrentTerrainPoint();
|
||||
if(terrainPoint!=null) {
|
||||
dragon.setPosition(terrainPoint);
|
||||
barrel.setPosition(terrainPoint);
|
||||
}
|
||||
|
||||
dragon.increaseRotation(0,1,0);
|
||||
masterRenderer.renderScene(entities, terrains, lights, camera);
|
||||
barrel.increaseRotation(0, 1, 0);
|
||||
masterRenderer.renderScene(entities, normalMapEntities, terrains, lights, camera, new Vector4f(0, -1, 0, 100000));
|
||||
masterRenderer.renderGuis(guis);
|
||||
|
||||
Window.swapBuffers();
|
||||
|
@ -110,6 +133,7 @@ public class Example {
|
|||
|
||||
}
|
||||
masterRenderer.cleanUp();
|
||||
TextMaster.cleanUp();
|
||||
Loader.cleanUp();
|
||||
System.exit(0);
|
||||
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
/**
|
||||
* Simple data structure class holding information about a certain glyph in the
|
||||
* font texture atlas. All sizes are for a font-size of 1.
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class Character {
|
||||
|
||||
private int id;
|
||||
private double xTextureCoord;
|
||||
private double yTextureCoord;
|
||||
private double xMaxTextureCoord;
|
||||
private double yMaxTextureCoord;
|
||||
private double xOffset;
|
||||
private double yOffset;
|
||||
private double sizeX;
|
||||
private double sizeY;
|
||||
private double xAdvance;
|
||||
|
||||
/**
|
||||
* @param id
|
||||
* - the ASCII value of the character.
|
||||
* @param xTextureCoord
|
||||
* - the x texture coordinate for the top left corner of the
|
||||
* character in the texture atlas.
|
||||
* @param yTextureCoord
|
||||
* - the y texture coordinate for the top left corner of the
|
||||
* character in the texture atlas.
|
||||
* @param xTexSize
|
||||
* - the width of the character in the texture atlas.
|
||||
* @param yTexSize
|
||||
* - the height of the character in the texture atlas.
|
||||
* @param xOffset
|
||||
* - the x distance from the curser to the left edge of the
|
||||
* character's quad.
|
||||
* @param yOffset
|
||||
* - the y distance from the curser to the top edge of the
|
||||
* character's quad.
|
||||
* @param sizeX
|
||||
* - the width of the character's quad in screen space.
|
||||
* @param sizeY
|
||||
* - the height of the character's quad in screen space.
|
||||
* @param xAdvance
|
||||
* - how far in pixels the cursor should advance after adding
|
||||
* this character.
|
||||
*/
|
||||
protected Character(int id, double xTextureCoord, double yTextureCoord, double xTexSize, double yTexSize,
|
||||
double xOffset, double yOffset, double sizeX, double sizeY, double xAdvance) {
|
||||
this.id = id;
|
||||
this.xTextureCoord = xTextureCoord;
|
||||
this.yTextureCoord = yTextureCoord;
|
||||
this.xOffset = xOffset;
|
||||
this.yOffset = yOffset;
|
||||
this.sizeX = sizeX;
|
||||
this.sizeY = sizeY;
|
||||
this.xMaxTextureCoord = xTexSize + xTextureCoord;
|
||||
this.yMaxTextureCoord = yTexSize + yTextureCoord;
|
||||
this.xAdvance = xAdvance;
|
||||
}
|
||||
|
||||
protected int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
protected double getxTextureCoord() {
|
||||
return xTextureCoord;
|
||||
}
|
||||
|
||||
protected double getyTextureCoord() {
|
||||
return yTextureCoord;
|
||||
}
|
||||
|
||||
protected double getXMaxTextureCoord() {
|
||||
return xMaxTextureCoord;
|
||||
}
|
||||
|
||||
protected double getYMaxTextureCoord() {
|
||||
return yMaxTextureCoord;
|
||||
}
|
||||
|
||||
protected double getxOffset() {
|
||||
return xOffset;
|
||||
}
|
||||
|
||||
protected double getyOffset() {
|
||||
return yOffset;
|
||||
}
|
||||
|
||||
protected double getSizeX() {
|
||||
return sizeX;
|
||||
}
|
||||
|
||||
protected double getSizeY() {
|
||||
return sizeY;
|
||||
}
|
||||
|
||||
protected double getxAdvance() {
|
||||
return xAdvance;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
/**
|
||||
* Represents a font. It holds the font's texture atlas as well as having the
|
||||
* ability to create the quad vertices for any text using this font.
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class FontType {
|
||||
|
||||
private int textureAtlas;
|
||||
private TextMeshCreator loader;
|
||||
|
||||
/**
|
||||
* Creates a new font and loads up the data about each character from the
|
||||
* font file.
|
||||
*
|
||||
* @param textureAtlas
|
||||
* - the ID of the font atlas texture.
|
||||
* @param fontFile
|
||||
* - the font file containing information about each character in
|
||||
* the texture atlas.
|
||||
*/
|
||||
public FontType(int textureAtlas, String fontFile) {
|
||||
this.textureAtlas = textureAtlas;
|
||||
this.loader = new TextMeshCreator(fontFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The font texture atlas.
|
||||
*/
|
||||
public int getTextureAtlas() {
|
||||
return textureAtlas;
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes in an unloaded text and calculate all of the vertices for the quads
|
||||
* on which this text will be rendered. The vertex positions and texture
|
||||
* coords and calculated based on the information from the font file.
|
||||
*
|
||||
* @param text
|
||||
* - the unloaded text.
|
||||
* @return Information about the vertices of all the quads.
|
||||
*/
|
||||
public TextMeshData loadText(GUIText text) {
|
||||
return loader.createTextMesh(text);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,184 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector2f;
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector3f;
|
||||
|
||||
/**
|
||||
* Represents a piece of text in the game.
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class GUIText {
|
||||
|
||||
private String textString;
|
||||
private float fontSize;
|
||||
|
||||
private int textMeshVao;
|
||||
private int vertexCount;
|
||||
private Vector3f colour = new Vector3f(0f, 0f, 0f);
|
||||
|
||||
private Vector2f position;
|
||||
private float lineMaxSize;
|
||||
private int numberOfLines;
|
||||
|
||||
private FontType font;
|
||||
|
||||
private boolean centerText = false;
|
||||
|
||||
/**
|
||||
* Creates a new text, loads the text's quads into a VAO, and adds the text
|
||||
* to the screen.
|
||||
*
|
||||
* @param text
|
||||
* - the text.
|
||||
* @param fontSize
|
||||
* - the font size of the text, where a font size of 1 is the
|
||||
* default size.
|
||||
* @param font
|
||||
* - the font that this text should use.
|
||||
* @param position
|
||||
* - the position on the screen where the top left corner of the
|
||||
* text should be rendered. The top left corner of the screen is
|
||||
* (0, 0) and the bottom right is (1, 1).
|
||||
* @param maxLineLength
|
||||
* - basically the width of the virtual page in terms of screen
|
||||
* width (1 is full screen width, 0.5 is half the width of the
|
||||
* screen, etc.) Text cannot go off the edge of the page, so if
|
||||
* the text is longer than this length it will go onto the next
|
||||
* line. When text is centered it is centered into the middle of
|
||||
* the line, based on this line length value.
|
||||
* @param centered
|
||||
* - whether the text should be centered or not.
|
||||
*/
|
||||
public GUIText(String text, float fontSize, FontType font, Vector2f position, float maxLineLength,
|
||||
boolean centered) {
|
||||
this.textString = text;
|
||||
this.fontSize = fontSize;
|
||||
this.font = font;
|
||||
this.position = position;
|
||||
this.lineMaxSize = maxLineLength;
|
||||
this.centerText = centered;
|
||||
TextMaster.loadText(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the text from the screen.
|
||||
*/
|
||||
public void remove() {
|
||||
TextMaster.removeText(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The font used by this text.
|
||||
*/
|
||||
public FontType getFont() {
|
||||
return font;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the colour of the text.
|
||||
*
|
||||
* @param r
|
||||
* - red value, between 0 and 1.
|
||||
* @param g
|
||||
* - green value, between 0 and 1.
|
||||
* @param b
|
||||
* - blue value, between 0 and 1.
|
||||
*/
|
||||
public void setColour(float r, float g, float b) {
|
||||
colour.set(r, g, b);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the colour of the text.
|
||||
*/
|
||||
public Vector3f getColour() {
|
||||
return colour;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The number of lines of text. This is determined when the text is
|
||||
* loaded, based on the length of the text and the max line length
|
||||
* that is set.
|
||||
*/
|
||||
public int getNumberOfLines() {
|
||||
return numberOfLines;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The position of the top-left corner of the text in screen-space.
|
||||
* (0, 0) is the top left corner of the screen, (1, 1) is the bottom
|
||||
* right.
|
||||
*/
|
||||
public Vector2f getPosition() {
|
||||
return position;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the ID of the text's VAO, which contains all the vertex data for
|
||||
* the quads on which the text will be rendered.
|
||||
*/
|
||||
public int getMesh() {
|
||||
return textMeshVao;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the VAO and vertex count for this text.
|
||||
*
|
||||
* @param vao
|
||||
* - the VAO containing all the vertex data for the quads on
|
||||
* which the text will be rendered.
|
||||
* @param verticesCount
|
||||
* - the total number of vertices in all of the quads.
|
||||
*/
|
||||
public void setMeshInfo(int vao, int verticesCount) {
|
||||
this.textMeshVao = vao;
|
||||
this.vertexCount = verticesCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The total number of vertices of all the text's quads.
|
||||
*/
|
||||
public int getVertexCount() {
|
||||
return this.vertexCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the font size of the text (a font size of 1 is normal).
|
||||
*/
|
||||
protected float getFontSize() {
|
||||
return fontSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the number of lines that this text covers (method used only in
|
||||
* loading).
|
||||
*
|
||||
* @param number
|
||||
*/
|
||||
protected void setNumberOfLines(int number) {
|
||||
this.numberOfLines = number;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {@code true} if the text should be centered.
|
||||
*/
|
||||
protected boolean isCentered() {
|
||||
return centerText;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The maximum length of a line of this text.
|
||||
*/
|
||||
protected float getMaxLineSize() {
|
||||
return lineMaxSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The string of text.
|
||||
*/
|
||||
protected String getTextString() {
|
||||
return textString;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Represents a line of text during the loading of a text.
|
||||
*
|
||||
* @author Karl
|
||||
*
|
||||
*/
|
||||
public class Line {
|
||||
|
||||
private double maxLength;
|
||||
private double spaceSize;
|
||||
|
||||
private List<Word> words = new ArrayList<Word>();
|
||||
private double currentLineLength = 0;
|
||||
|
||||
/**
|
||||
* Creates an empty line.
|
||||
*
|
||||
* @param spaceWidth
|
||||
* - the screen-space width of a space character.
|
||||
* @param fontSize
|
||||
* - the size of font being used.
|
||||
* @param maxLength
|
||||
* - the screen-space maximum length of a line.
|
||||
*/
|
||||
protected Line(double spaceWidth, double fontSize, double maxLength) {
|
||||
this.spaceSize = spaceWidth * fontSize;
|
||||
this.maxLength = maxLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempt to add a word to the line. If the line can fit the word in
|
||||
* without reaching the maximum line length then the word is added and the
|
||||
* line length increased.
|
||||
*
|
||||
* @param word
|
||||
* - the word to try to add.
|
||||
* @return {@code true} if the word has successfully been added to the line.
|
||||
*/
|
||||
protected boolean attemptToAddWord(Word word) {
|
||||
double additionalLength = word.getWordWidth();
|
||||
additionalLength += !words.isEmpty() ? spaceSize : 0;
|
||||
if (currentLineLength + additionalLength <= maxLength) {
|
||||
words.add(word);
|
||||
currentLineLength += additionalLength;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The max length of the line.
|
||||
*/
|
||||
protected double getMaxLength() {
|
||||
return maxLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The current screen-space length of the line.
|
||||
*/
|
||||
protected double getLineLength() {
|
||||
return currentLineLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The list of words in the line.
|
||||
*/
|
||||
protected List<Word> getWords() {
|
||||
return words;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,213 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import io.github.hydos.ginger.io.Window;
|
||||
|
||||
/**
|
||||
* Provides functionality for getting the values from a font file.
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class MetaFile {
|
||||
|
||||
private static final int PAD_TOP = 0;
|
||||
private static final int PAD_LEFT = 1;
|
||||
private static final int PAD_BOTTOM = 2;
|
||||
private static final int PAD_RIGHT = 3;
|
||||
|
||||
private static final int DESIRED_PADDING = 3;
|
||||
|
||||
private static final String SPLITTER = " ";
|
||||
private static final String NUMBER_SEPARATOR = ",";
|
||||
|
||||
private double aspectRatio;
|
||||
|
||||
private double verticalPerPixelSize;
|
||||
private double horizontalPerPixelSize;
|
||||
private double spaceWidth;
|
||||
private int[] padding;
|
||||
private int paddingWidth;
|
||||
private int paddingHeight;
|
||||
|
||||
private Map<Integer, Character> metaData = new HashMap<Integer, Character>();
|
||||
|
||||
private BufferedReader reader;
|
||||
private Map<String, String> values = new HashMap<String, String>();
|
||||
|
||||
/**
|
||||
* Opens a font file in preparation for reading.
|
||||
*
|
||||
* @param file
|
||||
* - the font file.
|
||||
*/
|
||||
protected MetaFile(String file) {
|
||||
this.aspectRatio = (double) Window.width / (double) Window.height;
|
||||
openFile(file);
|
||||
loadPaddingData();
|
||||
loadLineSizes();
|
||||
int imageWidth = getValueOfVariable("scaleW");
|
||||
loadCharacterData(imageWidth);
|
||||
close();
|
||||
}
|
||||
|
||||
protected double getSpaceWidth() {
|
||||
return spaceWidth;
|
||||
}
|
||||
|
||||
protected Character getCharacter(int ascii) {
|
||||
return metaData.get(ascii);
|
||||
}
|
||||
|
||||
/**
|
||||
* Read in the next line and store the variable values.
|
||||
*
|
||||
* @return {@code true} if the end of the file hasn't been reached.
|
||||
*/
|
||||
private boolean processNextLine() {
|
||||
values.clear();
|
||||
String line = null;
|
||||
try {
|
||||
line = reader.readLine();
|
||||
} catch (IOException e1) {
|
||||
}
|
||||
if (line == null) {
|
||||
return false;
|
||||
}
|
||||
for (String part : line.split(SPLITTER)) {
|
||||
String[] valuePairs = part.split("=");
|
||||
if (valuePairs.length == 2) {
|
||||
values.put(valuePairs[0], valuePairs[1]);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@code int} value of the variable with a certain name on the
|
||||
* current line.
|
||||
*
|
||||
* @param variable
|
||||
* - the name of the variable.
|
||||
* @return The value of the variable.
|
||||
*/
|
||||
private int getValueOfVariable(String variable) {
|
||||
return Integer.parseInt(values.get(variable));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the array of ints associated with a variable on the current line.
|
||||
*
|
||||
* @param variable
|
||||
* - the name of the variable.
|
||||
* @return The int array of values associated with the variable.
|
||||
*/
|
||||
private int[] getValuesOfVariable(String variable) {
|
||||
String[] numbers = values.get(variable).split(NUMBER_SEPARATOR);
|
||||
int[] actualValues = new int[numbers.length];
|
||||
for (int i = 0; i < actualValues.length; i++) {
|
||||
actualValues[i] = Integer.parseInt(numbers[i]);
|
||||
}
|
||||
return actualValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the font file after finishing reading.
|
||||
*/
|
||||
private void close() {
|
||||
try {
|
||||
reader.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the font file, ready for reading.
|
||||
*
|
||||
* @param file
|
||||
* - the font file.
|
||||
*/
|
||||
private void openFile(String file) {
|
||||
try {
|
||||
reader = new BufferedReader(new InputStreamReader(Class.class.getResourceAsStream("/fonts/" + file)));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.err.println("Couldn't read font meta file!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the data about how much padding is used around each character in
|
||||
* the texture atlas.
|
||||
*/
|
||||
private void loadPaddingData() {
|
||||
processNextLine();
|
||||
this.padding = getValuesOfVariable("padding");
|
||||
this.paddingWidth = padding[PAD_LEFT] + padding[PAD_RIGHT];
|
||||
this.paddingHeight = padding[PAD_TOP] + padding[PAD_BOTTOM];
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads information about the line height for this font in pixels, and uses
|
||||
* this as a way to find the conversion rate between pixels in the texture
|
||||
* atlas and screen-space.
|
||||
*/
|
||||
private void loadLineSizes() {
|
||||
processNextLine();
|
||||
int lineHeightPixels = getValueOfVariable("lineHeight") - paddingHeight;
|
||||
verticalPerPixelSize = TextMeshCreator.LINE_HEIGHT / (double) lineHeightPixels;
|
||||
horizontalPerPixelSize = verticalPerPixelSize / aspectRatio;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads in data about each character and stores the data in the
|
||||
* {@link Character} class.
|
||||
*
|
||||
* @param imageWidth
|
||||
* - the width of the texture atlas in pixels.
|
||||
*/
|
||||
private void loadCharacterData(int imageWidth) {
|
||||
processNextLine();
|
||||
processNextLine();
|
||||
while (processNextLine()) {
|
||||
Character c = loadCharacter(imageWidth);
|
||||
if (c != null) {
|
||||
metaData.put(c.getId(), c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all the data about one character in the texture atlas and converts
|
||||
* it all from 'pixels' to 'screen-space' before storing. The effects of
|
||||
* padding are also removed from the data.
|
||||
*
|
||||
* @param imageSize
|
||||
* - the size of the texture atlas in pixels.
|
||||
* @return The data about the character.
|
||||
*/
|
||||
private Character loadCharacter(int imageSize) {
|
||||
int id = getValueOfVariable("id");
|
||||
if (id == TextMeshCreator.SPACE_ASCII) {
|
||||
this.spaceWidth = (getValueOfVariable("xadvance") - paddingWidth) * horizontalPerPixelSize;
|
||||
return null;
|
||||
}
|
||||
double xTex = ((double) getValueOfVariable("x") + (padding[PAD_LEFT] - DESIRED_PADDING)) / imageSize;
|
||||
double yTex = ((double) getValueOfVariable("y") + (padding[PAD_TOP] - DESIRED_PADDING)) / imageSize;
|
||||
int width = getValueOfVariable("width") - (paddingWidth - (2 * DESIRED_PADDING));
|
||||
int height = getValueOfVariable("height") - ((paddingHeight) - (2 * DESIRED_PADDING));
|
||||
double quadWidth = width * horizontalPerPixelSize;
|
||||
double quadHeight = height * verticalPerPixelSize;
|
||||
double xTexSize = (double) width / imageSize;
|
||||
double yTexSize = (double) height / imageSize;
|
||||
double xOff = (getValueOfVariable("xoffset") + padding[PAD_LEFT] - DESIRED_PADDING) * horizontalPerPixelSize;
|
||||
double yOff = (getValueOfVariable("yoffset") + (padding[PAD_TOP] - DESIRED_PADDING)) * verticalPerPixelSize;
|
||||
double xAdvance = (getValueOfVariable("xadvance") - paddingWidth) * horizontalPerPixelSize;
|
||||
return new Character(id, xTex, yTex, xTexSize, yTexSize, xOff, yOff, quadWidth, quadHeight, xAdvance);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.github.hydos.ginger.renderEngine.renderers.FontRenderer;
|
||||
import io.github.hydos.ginger.utils.Loader;
|
||||
|
||||
public class TextMaster {
|
||||
|
||||
private static Map<FontType, List<GUIText>> texts = new HashMap<FontType, List<GUIText>>();
|
||||
private static FontRenderer renderer;
|
||||
|
||||
public static void init() {
|
||||
renderer = new FontRenderer();
|
||||
}
|
||||
|
||||
public static void loadText(GUIText text) {
|
||||
FontType font = text.getFont();
|
||||
TextMeshData data = font.loadText(text);
|
||||
int vao = Loader.loadToVAO(data.getVertexPositions(), data.getTextureCoords());
|
||||
text.setMeshInfo(vao, data.getVertexCount());
|
||||
List<GUIText> textBatch = texts.get(font);
|
||||
if(textBatch == null) {
|
||||
textBatch = new ArrayList<GUIText>();
|
||||
texts.put(font, textBatch);
|
||||
}
|
||||
textBatch.add(text);
|
||||
}
|
||||
|
||||
public static void removeText(GUIText text) {
|
||||
List<GUIText> textBatch = texts.get(text.getFont());
|
||||
textBatch.remove(text);
|
||||
if(textBatch.isEmpty()) {
|
||||
texts.remove(text.getFont());
|
||||
}
|
||||
}
|
||||
|
||||
public static void cleanUp() {
|
||||
renderer.cleanUp();
|
||||
}
|
||||
|
||||
public static void render() {
|
||||
renderer.render(texts);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TextMeshCreator {
|
||||
|
||||
protected static final double LINE_HEIGHT = 0.03f;
|
||||
protected static final int SPACE_ASCII = 32;
|
||||
|
||||
private MetaFile metaData;
|
||||
|
||||
protected TextMeshCreator(String metaFile) {
|
||||
metaData = new MetaFile(metaFile);
|
||||
}
|
||||
|
||||
protected TextMeshData createTextMesh(GUIText text) {
|
||||
List<Line> lines = createStructure(text);
|
||||
TextMeshData data = createQuadVertices(text, lines);
|
||||
return data;
|
||||
}
|
||||
|
||||
private List<Line> createStructure(GUIText text) {
|
||||
char[] chars = text.getTextString().toCharArray();
|
||||
List<Line> lines = new ArrayList<Line>();
|
||||
Line currentLine = new Line(metaData.getSpaceWidth(), text.getFontSize(), text.getMaxLineSize());
|
||||
Word currentWord = new Word(text.getFontSize());
|
||||
for (char c : chars) {
|
||||
int ascii = (int) c;
|
||||
if (ascii == SPACE_ASCII) {
|
||||
boolean added = currentLine.attemptToAddWord(currentWord);
|
||||
if (!added) {
|
||||
lines.add(currentLine);
|
||||
currentLine = new Line(metaData.getSpaceWidth(), text.getFontSize(), text.getMaxLineSize());
|
||||
currentLine.attemptToAddWord(currentWord);
|
||||
}
|
||||
currentWord = new Word(text.getFontSize());
|
||||
continue;
|
||||
}
|
||||
Character character = metaData.getCharacter(ascii);
|
||||
currentWord.addCharacter(character);
|
||||
}
|
||||
completeStructure(lines, currentLine, currentWord, text);
|
||||
return lines;
|
||||
}
|
||||
|
||||
private void completeStructure(List<Line> lines, Line currentLine, Word currentWord, GUIText text) {
|
||||
boolean added = currentLine.attemptToAddWord(currentWord);
|
||||
if (!added) {
|
||||
lines.add(currentLine);
|
||||
currentLine = new Line(metaData.getSpaceWidth(), text.getFontSize(), text.getMaxLineSize());
|
||||
currentLine.attemptToAddWord(currentWord);
|
||||
}
|
||||
lines.add(currentLine);
|
||||
}
|
||||
|
||||
private TextMeshData createQuadVertices(GUIText text, List<Line> lines) {
|
||||
text.setNumberOfLines(lines.size());
|
||||
double curserX = 0f;
|
||||
double curserY = 0f;
|
||||
List<Float> vertices = new ArrayList<Float>();
|
||||
List<Float> textureCoords = new ArrayList<Float>();
|
||||
for (Line line : lines) {
|
||||
if (text.isCentered()) {
|
||||
curserX = (line.getMaxLength() - line.getLineLength()) / 2;
|
||||
}
|
||||
for (Word word : line.getWords()) {
|
||||
for (Character letter : word.getCharacters()) {
|
||||
addVerticesForCharacter(curserX, curserY, letter, text.getFontSize(), vertices);
|
||||
addTexCoords(textureCoords, letter.getxTextureCoord(), letter.getyTextureCoord(),
|
||||
letter.getXMaxTextureCoord(), letter.getYMaxTextureCoord());
|
||||
curserX += letter.getxAdvance() * text.getFontSize();
|
||||
}
|
||||
curserX += metaData.getSpaceWidth() * text.getFontSize();
|
||||
}
|
||||
curserX = 0;
|
||||
curserY += LINE_HEIGHT * text.getFontSize();
|
||||
}
|
||||
return new TextMeshData(listToArray(vertices), listToArray(textureCoords));
|
||||
}
|
||||
|
||||
private void addVerticesForCharacter(double curserX, double curserY, Character character, double fontSize,
|
||||
List<Float> vertices) {
|
||||
double x = curserX + (character.getxOffset() * fontSize);
|
||||
double y = curserY + (character.getyOffset() * fontSize);
|
||||
double maxX = x + (character.getSizeX() * fontSize);
|
||||
double maxY = y + (character.getSizeY() * fontSize);
|
||||
double properX = (2 * x) - 1;
|
||||
double properY = (-2 * y) + 1;
|
||||
double properMaxX = (2 * maxX) - 1;
|
||||
double properMaxY = (-2 * maxY) + 1;
|
||||
addVertices(vertices, properX, properY, properMaxX, properMaxY);
|
||||
}
|
||||
|
||||
private static void addVertices(List<Float> vertices, double x, double y, double maxX, double maxY) {
|
||||
vertices.add((float) x);
|
||||
vertices.add((float) y);
|
||||
vertices.add((float) x);
|
||||
vertices.add((float) maxY);
|
||||
vertices.add((float) maxX);
|
||||
vertices.add((float) maxY);
|
||||
vertices.add((float) maxX);
|
||||
vertices.add((float) maxY);
|
||||
vertices.add((float) maxX);
|
||||
vertices.add((float) y);
|
||||
vertices.add((float) x);
|
||||
vertices.add((float) y);
|
||||
}
|
||||
|
||||
private static void addTexCoords(List<Float> texCoords, double x, double y, double maxX, double maxY) {
|
||||
texCoords.add((float) x);
|
||||
texCoords.add((float) y);
|
||||
texCoords.add((float) x);
|
||||
texCoords.add((float) maxY);
|
||||
texCoords.add((float) maxX);
|
||||
texCoords.add((float) maxY);
|
||||
texCoords.add((float) maxX);
|
||||
texCoords.add((float) maxY);
|
||||
texCoords.add((float) maxX);
|
||||
texCoords.add((float) y);
|
||||
texCoords.add((float) x);
|
||||
texCoords.add((float) y);
|
||||
}
|
||||
|
||||
|
||||
private static float[] listToArray(List<Float> listOfFloats) {
|
||||
float[] array = new float[listOfFloats.size()];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = listOfFloats.get(i);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
/**
|
||||
* Stores the vertex data for all the quads on which a text will be rendered.
|
||||
*
|
||||
*/
|
||||
public class TextMeshData {
|
||||
|
||||
private float[] vertexPositions;
|
||||
private float[] textureCoords;
|
||||
|
||||
protected TextMeshData(float[] vertexPositions, float[] textureCoords){
|
||||
this.vertexPositions = vertexPositions;
|
||||
this.textureCoords = textureCoords;
|
||||
}
|
||||
|
||||
public float[] getVertexPositions() {
|
||||
return vertexPositions;
|
||||
}
|
||||
|
||||
public float[] getTextureCoords() {
|
||||
return textureCoords;
|
||||
}
|
||||
|
||||
public int getVertexCount() {
|
||||
return vertexPositions.length/2;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package io.github.hydos.ginger.font;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* During the loading of a text this represents one word in the text.
|
||||
*
|
||||
*/
|
||||
public class Word {
|
||||
|
||||
private List<Character> characters = new ArrayList<Character>();
|
||||
private double width = 0;
|
||||
private double fontSize;
|
||||
|
||||
/**
|
||||
* Create a new empty word.
|
||||
* @param fontSize - the font size of the text which this word is in.
|
||||
*/
|
||||
protected Word(double fontSize){
|
||||
this.fontSize = fontSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a character to the end of the current word and increases the screen-space width of the word.
|
||||
* @param character - the character to be added.
|
||||
*/
|
||||
protected void addCharacter(Character character){
|
||||
characters.add(character);
|
||||
width += character.getxAdvance() * fontSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The list of characters in the word.
|
||||
*/
|
||||
protected List<Character> getCharacters(){
|
||||
return characters;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The width of the word in terms of screen size.
|
||||
*/
|
||||
protected double getWordWidth(){
|
||||
return width;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package io.github.hydos.ginger.normals.obj;
|
||||
package io.github.hydos.ginger.obj.normals;
|
||||
|
||||
public class ModelDataNM {
|
||||
|
|
@ -1,10 +1,8 @@
|
|||
package io.github.hydos.ginger.normals.obj;
|
||||
package io.github.hydos.ginger.obj.normals;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -15,16 +13,10 @@ import io.github.hydos.ginger.utils.Loader;
|
|||
|
||||
public class NormalMappedObjLoader {
|
||||
|
||||
private static final String RES_LOC = "res/";
|
||||
|
||||
public static RawModel loadOBJ(String objFileName) {
|
||||
FileReader isr = null;
|
||||
File objFile = new File(RES_LOC + objFileName + ".obj");
|
||||
try {
|
||||
isr = new FileReader(objFile);
|
||||
} catch (FileNotFoundException e) {
|
||||
System.err.println("File not found in res; don't use any extention");
|
||||
}
|
||||
BufferedReader isr = null;
|
||||
isr = new BufferedReader(new InputStreamReader(Class.class.getResourceAsStream("/models/" + objFileName)));
|
||||
BufferedReader reader = new BufferedReader(isr);
|
||||
String line;
|
||||
List<VertexNM> vertices = new ArrayList<VertexNM>();
|
||||
|
@ -77,14 +69,15 @@ public class NormalMappedObjLoader {
|
|||
float[] texturesArray = new float[vertices.size() * 2];
|
||||
float[] normalsArray = new float[vertices.size() * 3];
|
||||
float[] tangentsArray = new float[vertices.size() * 3];
|
||||
@SuppressWarnings("unused")
|
||||
//some weird eclipse only error here i think
|
||||
float furthest = convertDataToArrays(vertices, textures, normals, verticesArray,
|
||||
texturesArray, normalsArray, tangentsArray);
|
||||
int[] indicesArray = convertIndicesListToArray(indices);
|
||||
|
||||
return Loader.loadToVAO(verticesArray, indicesArray, normalsArray, texturesArray);
|
||||
return Loader.loadToVAO(verticesArray, indicesArray, normalsArray, tangentsArray, texturesArray);
|
||||
}
|
||||
|
||||
//used to be NEW
|
||||
private static void calculateTangents(VertexNM v0, VertexNM v1, VertexNM v2,
|
||||
List<Vector2f> textures) {
|
||||
Vector3f delatPos1 = Vector3f.sub(v1.getPosition(), v0.getPosition(), null);
|
||||
|
@ -170,7 +163,7 @@ public class NormalMappedObjLoader {
|
|||
return dealWithAlreadyProcessedVertex(anotherVertex, newTextureIndex,
|
||||
newNormalIndex, indices, vertices);
|
||||
} else {
|
||||
VertexNM duplicateVertex = previousVertex.duplicate(vertices.size());//NEW
|
||||
VertexNM duplicateVertex = previousVertex.duplicate(vertices.size());
|
||||
duplicateVertex.setTextureIndex(newTextureIndex);
|
||||
duplicateVertex.setNormalIndex(newNormalIndex);
|
||||
previousVertex.setDuplicateVertex(duplicateVertex);
|
|
@ -1,4 +1,4 @@
|
|||
package io.github.hydos.ginger.normals.obj;
|
||||
package io.github.hydos.ginger.obj.normals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
|||
package io.github.hydos.ginger.renderEngine.renderers;
|
||||
package io.github.hydos.ginger.renderEngine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -13,7 +13,13 @@ import io.github.hydos.ginger.elements.ThirdPersonCamera;
|
|||
import io.github.hydos.ginger.guis.GuiTexture;
|
||||
import io.github.hydos.ginger.io.Window;
|
||||
import io.github.hydos.ginger.mathEngine.matrixes.Matrix4f;
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector4f;
|
||||
import io.github.hydos.ginger.renderEngine.models.TexturedModel;
|
||||
import io.github.hydos.ginger.renderEngine.renderers.EntityRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.renderers.GuiRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.renderers.NormalMappingRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.renderers.SkyboxRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.renderers.TerrainRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.shaders.GuiShader;
|
||||
import io.github.hydos.ginger.renderEngine.shaders.StaticShader;
|
||||
import io.github.hydos.ginger.renderEngine.shaders.TerrainShader;
|
||||
|
@ -32,9 +38,12 @@ public class MasterRenderer {
|
|||
|
||||
private SkyboxRenderer skyboxRenderer;
|
||||
|
||||
private NormalMappingRenderer normalRenderer;
|
||||
|
||||
private Matrix4f projectionMatrix;
|
||||
|
||||
private Map<TexturedModel, List<Entity>> entities = new HashMap<TexturedModel, List<Entity>>();
|
||||
private Map<TexturedModel, List<Entity>> normalMapEntities = new HashMap<TexturedModel, List<Entity>>();
|
||||
|
||||
private static final float FOV = 70f;
|
||||
private static final float NEAR_PLANE = 0.1f;
|
||||
|
@ -50,6 +59,8 @@ public class MasterRenderer {
|
|||
guiShader = new GuiShader();
|
||||
guiRenderer = new GuiRenderer(guiShader);
|
||||
|
||||
normalRenderer = new NormalMappingRenderer(projectionMatrix);
|
||||
|
||||
terrainShader = new TerrainShader();
|
||||
terrainRenderer = new TerrainRenderer(terrainShader, projectionMatrix);
|
||||
|
||||
|
@ -64,15 +75,22 @@ public class MasterRenderer {
|
|||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
}
|
||||
|
||||
public void renderScene(List<Entity> entities, List<Terrain> terrains, List<Light> lights, ThirdPersonCamera camera) {
|
||||
renderEntities(entities, camera, lights);
|
||||
renderTerrains(terrains, lights, camera);
|
||||
public void renderScene(List<Entity> entities, List<Entity> normalEntities, List<Terrain> terrains, List<Light> lights, ThirdPersonCamera camera, Vector4f clipPlane) {
|
||||
renderEntities(entities, camera, lights);
|
||||
renderNormalEntities(normalEntities, lights, camera, clipPlane);
|
||||
renderTerrains(terrains, lights, camera);
|
||||
|
||||
skyboxRenderer.render(camera);
|
||||
|
||||
}
|
||||
|
||||
private void renderNormalEntities(List<Entity> normalEntities, List<Light> lights, ThirdPersonCamera camera, Vector4f clipPlane) {
|
||||
for(Entity entity: normalEntities) {
|
||||
processEntityWithNormal(entity);
|
||||
}
|
||||
normalRenderer.render(normalMapEntities, clipPlane, lights, camera);
|
||||
}
|
||||
|
||||
public void renderGuis(List<GuiTexture> guis) {
|
||||
guiRenderer.render(guis);
|
||||
}
|
||||
|
@ -112,10 +130,23 @@ public class MasterRenderer {
|
|||
}
|
||||
}
|
||||
|
||||
private void processEntityWithNormal(Entity entity) {
|
||||
TexturedModel entityModel = entity.getModel();
|
||||
List<Entity> batch = normalMapEntities.get(entityModel);
|
||||
if(batch!=null) {
|
||||
batch.add(entity);
|
||||
}else {
|
||||
List<Entity> newBatch = new ArrayList<Entity>();
|
||||
newBatch.add(entity);
|
||||
normalMapEntities.put(entityModel, newBatch);
|
||||
}
|
||||
}
|
||||
|
||||
public void cleanUp() {
|
||||
entityShader.cleanUp();
|
||||
terrainShader.cleanUp();
|
||||
guiRenderer.cleanUp();
|
||||
normalRenderer.cleanUp();
|
||||
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ import org.lwjgl.opengl.GL30;
|
|||
import io.github.hydos.ginger.elements.Entity;
|
||||
import io.github.hydos.ginger.mathEngine.Maths;
|
||||
import io.github.hydos.ginger.mathEngine.matrixes.Matrix4f;
|
||||
import io.github.hydos.ginger.renderEngine.MasterRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.models.RawModel;
|
||||
import io.github.hydos.ginger.renderEngine.models.TexturedModel;
|
||||
import io.github.hydos.ginger.renderEngine.shaders.StaticShader;
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
package io.github.hydos.ginger.renderEngine.renderers;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL13;
|
||||
import org.lwjgl.opengl.GL14;
|
||||
import org.lwjgl.opengl.GL20;
|
||||
import org.lwjgl.opengl.GL30;
|
||||
|
||||
import io.github.hydos.ginger.font.FontType;
|
||||
import io.github.hydos.ginger.font.GUIText;
|
||||
import io.github.hydos.ginger.renderEngine.shaders.FontShader;
|
||||
|
||||
public class FontRenderer {
|
||||
|
||||
private FontShader shader;
|
||||
|
||||
public FontRenderer() {
|
||||
shader = new FontShader();
|
||||
}
|
||||
|
||||
public void render(Map<FontType, List<GUIText>> texts) {
|
||||
prepare();
|
||||
for(FontType font : texts.keySet()) {
|
||||
GL14.glActiveTexture(GL13.GL_TEXTURE0);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, font.getTextureAtlas());
|
||||
for(GUIText text : texts.get(font)) {
|
||||
renderText(text);
|
||||
}
|
||||
}
|
||||
endRendering();
|
||||
}
|
||||
|
||||
public void cleanUp(){
|
||||
shader.cleanUp();
|
||||
}
|
||||
|
||||
private void prepare(){
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST);
|
||||
shader.start();
|
||||
}
|
||||
|
||||
private void renderText(GUIText text){
|
||||
GL30.glBindVertexArray(text.getMesh());
|
||||
GL20.glEnableVertexAttribArray(0);
|
||||
GL20.glEnableVertexAttribArray(1);
|
||||
shader.loadColour(text.getColour());
|
||||
shader.loadTranslation(text.getPosition());
|
||||
GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, text.getVertexCount());
|
||||
GL30.glBindVertexArray(0);
|
||||
GL20.glDisableVertexAttribArray(0);
|
||||
GL20.glDisableVertexAttribArray(1);
|
||||
}
|
||||
|
||||
private void endRendering(){
|
||||
shader.stop();
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -15,6 +15,7 @@ import io.github.hydos.ginger.io.Window;
|
|||
import io.github.hydos.ginger.mathEngine.Maths;
|
||||
import io.github.hydos.ginger.mathEngine.matrixes.Matrix4f;
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector4f;
|
||||
import io.github.hydos.ginger.renderEngine.MasterRenderer;
|
||||
import io.github.hydos.ginger.renderEngine.models.RawModel;
|
||||
import io.github.hydos.ginger.renderEngine.models.TexturedModel;
|
||||
import io.github.hydos.ginger.renderEngine.shaders.NormalMappingShader;
|
||||
|
@ -45,6 +46,7 @@ public class NormalMappingRenderer {
|
|||
unbindTexturedModel();
|
||||
}
|
||||
shader.stop();
|
||||
entities.clear();
|
||||
}
|
||||
|
||||
public void cleanUp(){
|
||||
|
@ -57,6 +59,7 @@ public class NormalMappingRenderer {
|
|||
GL20.glEnableVertexAttribArray(0);
|
||||
GL20.glEnableVertexAttribArray(1);
|
||||
GL20.glEnableVertexAttribArray(2);
|
||||
GL20.glEnableVertexAttribArray(3);
|
||||
ModelTexture texture = model.getTexture();
|
||||
if (texture.isTransparent()) {
|
||||
MasterRenderer.disableCulling();
|
||||
|
@ -64,6 +67,8 @@ public class NormalMappingRenderer {
|
|||
shader.loadShineVariables(texture.getShineDamper(), texture.getReflectivity());
|
||||
GL13.glActiveTexture(GL13.GL_TEXTURE0);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, model.getTexture().getTextureID());
|
||||
GL13.glActiveTexture(GL13.GL_TEXTURE1);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, model.getTexture().getNormalMap());
|
||||
}
|
||||
|
||||
private void unbindTexturedModel() {
|
||||
|
@ -71,6 +76,7 @@ public class NormalMappingRenderer {
|
|||
GL20.glDisableVertexAttribArray(0);
|
||||
GL20.glDisableVertexAttribArray(1);
|
||||
GL20.glDisableVertexAttribArray(2);
|
||||
GL20.glDisableVertexAttribArray(3);
|
||||
GL30.glBindVertexArray(0);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
package io.github.hydos.ginger.renderEngine.shaders;
|
||||
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector2f;
|
||||
import io.github.hydos.ginger.mathEngine.vectors.Vector3f;
|
||||
|
||||
public class FontShader extends ShaderProgram{
|
||||
|
||||
private static final String VERTEX_FILE = "fontVertexShader.glsl";
|
||||
private static final String FRAGMENT_FILE = "fontFragmentShader.glsl";
|
||||
|
||||
private int location_colour;
|
||||
private int location_translation;
|
||||
|
||||
public FontShader() {
|
||||
super(VERTEX_FILE, FRAGMENT_FILE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void getAllUniformLocations() {
|
||||
location_colour = super.getUniformLocation("colour");
|
||||
location_translation = super.getUniformLocation("translation");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindAttributes() {
|
||||
super.bindAttribute(0, "position");
|
||||
super.bindAttribute(1, "textureCoords");
|
||||
}
|
||||
|
||||
public void loadColour(Vector3f colour) {
|
||||
super.loadVector(location_colour, colour);
|
||||
}
|
||||
|
||||
public void loadTranslation(Vector2f translation) {
|
||||
super.load2DVector(location_translation, translation);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -12,8 +12,8 @@ public class NormalMappingShader extends ShaderProgram{
|
|||
|
||||
private static final int MAX_LIGHTS = 4;
|
||||
|
||||
private static final String VERTEX_FILE = "src/normalMappingRenderer/normalMapVShader.txt";
|
||||
private static final String FRAGMENT_FILE = "src/normalMappingRenderer/normalMapFShader.txt";
|
||||
private static final String VERTEX_FILE = "normalMapVertexShader.glsl";
|
||||
private static final String FRAGMENT_FILE = "normalMapFragmentShader.glsl";
|
||||
|
||||
private int location_transformationMatrix;
|
||||
private int location_projectionMatrix;
|
||||
|
@ -28,6 +28,7 @@ public class NormalMappingShader extends ShaderProgram{
|
|||
private int location_offset;
|
||||
private int location_plane;
|
||||
private int location_modelTexture;
|
||||
private int location_normalMap;
|
||||
|
||||
public NormalMappingShader() {
|
||||
super(VERTEX_FILE, FRAGMENT_FILE);
|
||||
|
@ -38,6 +39,7 @@ public class NormalMappingShader extends ShaderProgram{
|
|||
super.bindAttribute(0, "position");
|
||||
super.bindAttribute(1, "textureCoordinates");
|
||||
super.bindAttribute(2, "normal");
|
||||
super.bindAttribute(3, "tangent");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -52,6 +54,7 @@ public class NormalMappingShader extends ShaderProgram{
|
|||
location_offset = super.getUniformLocation("offset");
|
||||
location_plane = super.getUniformLocation("plane");
|
||||
location_modelTexture = super.getUniformLocation("modelTexture");
|
||||
location_normalMap = super.getUniformLocation("normalMap");
|
||||
|
||||
location_lightPositionEyeSpace = new int[MAX_LIGHTS];
|
||||
location_lightColour = new int[MAX_LIGHTS];
|
||||
|
@ -65,6 +68,7 @@ public class NormalMappingShader extends ShaderProgram{
|
|||
|
||||
public void connectTextureUnits(){
|
||||
super.loadInt(location_modelTexture, 0);
|
||||
super.loadInt(location_normalMap, 1);
|
||||
}
|
||||
|
||||
public void loadClipPlane(Vector4f plane){
|
||||
|
|
|
@ -10,8 +10,12 @@ public class ModelTexture {
|
|||
private boolean transparency = false;
|
||||
private boolean useFakeLighting = false;
|
||||
|
||||
public int numberOfRows = 1;
|
||||
|
||||
private int normalMap;
|
||||
|
||||
private float shineDamper = 1;
|
||||
private float reflectivity = 1;
|
||||
private float reflectivity = 0;
|
||||
|
||||
private Image texture;
|
||||
|
||||
|
@ -47,6 +51,14 @@ public class ModelTexture {
|
|||
return texture;
|
||||
}
|
||||
|
||||
public int getNormalMap() {
|
||||
return normalMap;
|
||||
}
|
||||
|
||||
public void setNormalMap(int normalMap) {
|
||||
this.normalMap = normalMap;
|
||||
}
|
||||
|
||||
public float getShineDamper() {
|
||||
return shineDamper;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import java.util.List;
|
|||
import org.lwjgl.BufferUtils;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GL13;
|
||||
import org.lwjgl.opengl.GL14;
|
||||
import org.lwjgl.opengl.GL15;
|
||||
import org.lwjgl.opengl.GL20;
|
||||
import org.lwjgl.opengl.GL30;
|
||||
|
@ -98,13 +99,12 @@ public class Loader {
|
|||
}
|
||||
}
|
||||
|
||||
public static RawModel loadToVAO(float[] positions, int[] indices, float[] textureCoords) {
|
||||
public static int loadToVAO(float[] positions, float[] textureCoords) {
|
||||
int vaoID = createVAO();
|
||||
bindIndicesBuffer(indices);
|
||||
storeDataInAttributeList(0, 3, positions);
|
||||
storeDataInAttributeList(0, 2, positions);
|
||||
storeDataInAttributeList(1, 2, textureCoords);
|
||||
unbindVAO();
|
||||
return new RawModel(vaoID, indices.length);
|
||||
return vaoID;
|
||||
}
|
||||
|
||||
public static RawModel loadToVAO(float[] positions, int[] indices, float[] normals, float[] textureCoords) {
|
||||
|
@ -116,13 +116,49 @@ public class Loader {
|
|||
unbindVAO();
|
||||
return new RawModel(vaoID, indices.length);
|
||||
}
|
||||
|
||||
public static RawModel loadToVAO(float[] positions, int[] indices, float[] normals, float[] tangents, float[] textureCoords) {
|
||||
int vaoID = createVAO();
|
||||
bindIndicesBuffer(indices);
|
||||
storeDataInAttributeList(0, 3, positions);
|
||||
storeDataInAttributeList(1, 2, textureCoords);
|
||||
storeDataInAttributeList(2, 3, normals);
|
||||
storeDataInAttributeList(3, 3, tangents);
|
||||
unbindVAO();
|
||||
return new RawModel(vaoID, indices.length);
|
||||
}
|
||||
|
||||
public static TerrainTexture loadTerrainTexture(String string) {
|
||||
return new TerrainTexture(new ModelTexture("terrain/" + string).getTextureID());
|
||||
}
|
||||
|
||||
public static int loadTexture(String path) {
|
||||
return new ModelTexture(path).getTextureID();
|
||||
int textureID = GL11.glGenTextures();
|
||||
Image texture = Image.createImage("/textures/" + path);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);
|
||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, 10241, 9729.0f);
|
||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, 10240, 9729.0f);
|
||||
GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, texture.getWidth(), texture.getHeight(), 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, texture.getImage());
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
|
||||
GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D);
|
||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_LINEAR);
|
||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL14.GL_TEXTURE_LOD_BIAS, -0.4f);
|
||||
return textureID;
|
||||
}
|
||||
|
||||
public static int loadFontAtlas(String path) {
|
||||
int textureID = GL11.glGenTextures();
|
||||
Image texture = Image.createImage("/fonts/" + path);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);
|
||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, 10241, 9729.0f);
|
||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, 10240, 9729.0f);
|
||||
GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, texture.getWidth(), texture.getHeight(), 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, texture.getImage());
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
|
||||
GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D);
|
||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_LINEAR);
|
||||
GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL14.GL_TEXTURE_LOD_BIAS, -0.4f);
|
||||
return textureID;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
info face="Calibri" size=87 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=3,3,3,3 spacing=0,0
|
||||
common lineHeight=113 base=75 scaleW=512 scaleH=512 pages=1 packed=0
|
||||
page id=0 file="calibri.png"
|
||||
chars count=95
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=75 xadvance=26 page=0 chnl=0
|
||||
char id=124 x=0 y=0 width=15 height=85 xoffset=13 yoffset=10 xadvance=46 page=0 chnl=0
|
||||
char id=36 x=15 y=0 width=44 height=83 xoffset=0 yoffset=6 xadvance=50 page=0 chnl=0
|
||||
char id=41 x=59 y=0 width=24 height=83 xoffset=2 yoffset=11 xadvance=32 page=0 chnl=0
|
||||
char id=40 x=83 y=0 width=23 height=83 xoffset=3 yoffset=11 xadvance=32 page=0 chnl=0
|
||||
char id=92 x=106 y=0 width=41 height=82 xoffset=-3 yoffset=9 xadvance=40 page=0 chnl=0
|
||||
char id=47 x=147 y=0 width=40 height=82 xoffset=-3 yoffset=9 xadvance=40 page=0 chnl=0
|
||||
char id=125 x=187 y=0 width=30 height=82 xoffset=1 yoffset=11 xadvance=33 page=0 chnl=0
|
||||
char id=123 x=217 y=0 width=29 height=82 xoffset=0 yoffset=11 xadvance=33 page=0 chnl=0
|
||||
char id=93 x=246 y=0 width=23 height=81 xoffset=0 yoffset=12 xadvance=33 page=0 chnl=0
|
||||
char id=91 x=269 y=0 width=22 height=81 xoffset=5 yoffset=12 xadvance=33 page=0 chnl=0
|
||||
char id=106 x=291 y=0 width=26 height=79 xoffset=-5 yoffset=16 xadvance=27 page=0 chnl=0
|
||||
char id=64 x=317 y=0 width=71 height=74 xoffset=4 yoffset=15 xadvance=84 page=0 chnl=0
|
||||
char id=81 x=388 y=0 width=65 height=72 xoffset=1 yoffset=15 xadvance=65 page=0 chnl=0
|
||||
char id=38 x=0 y=85 width=59 height=68 xoffset=1 yoffset=12 xadvance=65 page=0 chnl=0
|
||||
char id=63 x=59 y=85 width=39 height=68 xoffset=3 yoffset=12 xadvance=46 page=0 chnl=0
|
||||
char id=33 x=98 y=85 width=17 height=68 xoffset=8 yoffset=12 xadvance=34 page=0 chnl=0
|
||||
char id=102 x=115 y=85 width=35 height=68 xoffset=-2 yoffset=11 xadvance=33 page=0 chnl=0
|
||||
char id=100 x=150 y=85 width=43 height=68 xoffset=1 yoffset=12 xadvance=52 page=0 chnl=0
|
||||
char id=98 x=193 y=85 width=43 height=68 xoffset=4 yoffset=12 xadvance=52 page=0 chnl=0
|
||||
char id=37 x=236 y=85 width=64 height=67 xoffset=0 yoffset=14 xadvance=68 page=0 chnl=0
|
||||
char id=108 x=300 y=85 width=16 height=67 xoffset=4 yoffset=12 xadvance=26 page=0 chnl=0
|
||||
char id=107 x=316 y=85 width=38 height=67 xoffset=4 yoffset=12 xadvance=46 page=0 chnl=0
|
||||
char id=104 x=354 y=85 width=40 height=67 xoffset=4 yoffset=12 xadvance=52 page=0 chnl=0
|
||||
char id=48 x=394 y=85 width=46 height=65 xoffset=0 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=57 x=440 y=85 width=44 height=65 xoffset=0 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=56 x=0 y=153 width=45 height=65 xoffset=0 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=54 x=45 y=153 width=44 height=65 xoffset=2 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=51 x=89 y=153 width=42 height=65 xoffset=1 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=113 x=131 y=153 width=43 height=65 xoffset=1 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=112 x=174 y=153 width=43 height=65 xoffset=4 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=103 x=217 y=153 width=44 height=65 xoffset=-1 yoffset=30 xadvance=47 page=0 chnl=0
|
||||
char id=83 x=261 y=153 width=42 height=65 xoffset=0 yoffset=15 xadvance=46 page=0 chnl=0
|
||||
char id=79 x=303 y=153 width=57 height=65 xoffset=1 yoffset=15 xadvance=64 page=0 chnl=0
|
||||
char id=71 x=360 y=153 width=53 height=65 xoffset=1 yoffset=15 xadvance=61 page=0 chnl=0
|
||||
char id=67 x=413 y=153 width=48 height=65 xoffset=1 yoffset=15 xadvance=52 page=0 chnl=0
|
||||
char id=53 x=461 y=153 width=43 height=64 xoffset=1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=50 x=0 y=218 width=42 height=64 xoffset=2 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=121 x=42 y=218 width=44 height=64 xoffset=-2 yoffset=31 xadvance=45 page=0 chnl=0
|
||||
char id=85 x=86 y=218 width=49 height=64 xoffset=4 yoffset=16 xadvance=62 page=0 chnl=0
|
||||
char id=74 x=135 y=218 width=29 height=64 xoffset=-3 yoffset=16 xadvance=34 page=0 chnl=0
|
||||
char id=127 x=164 y=218 width=49 height=63 xoffset=-1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=35 x=213 y=218 width=48 height=63 xoffset=-2 yoffset=16 xadvance=49 page=0 chnl=0
|
||||
char id=55 x=261 y=218 width=44 height=63 xoffset=1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=52 x=305 y=218 width=47 height=63 xoffset=-1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=49 x=352 y=218 width=40 height=63 xoffset=5 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=105 x=392 y=218 width=17 height=63 xoffset=3 yoffset=16 xadvance=26 page=0 chnl=0
|
||||
char id=90 x=409 y=218 width=44 height=63 xoffset=-1 yoffset=16 xadvance=47 page=0 chnl=0
|
||||
char id=89 x=453 y=218 width=49 height=63 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
|
||||
char id=88 x=0 y=282 width=48 height=63 xoffset=-1 yoffset=16 xadvance=51 page=0 chnl=0
|
||||
char id=87 x=48 y=282 width=80 height=63 xoffset=-1 yoffset=16 xadvance=83 page=0 chnl=0
|
||||
char id=86 x=128 y=282 width=54 height=63 xoffset=-2 yoffset=16 xadvance=55 page=0 chnl=0
|
||||
char id=84 x=182 y=282 width=50 height=63 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
|
||||
char id=82 x=232 y=282 width=44 height=63 xoffset=4 yoffset=16 xadvance=53 page=0 chnl=0
|
||||
char id=80 x=276 y=282 width=42 height=63 xoffset=4 yoffset=16 xadvance=51 page=0 chnl=0
|
||||
char id=78 x=318 y=282 width=50 height=63 xoffset=4 yoffset=16 xadvance=62 page=0 chnl=0
|
||||
char id=77 x=368 y=282 width=68 height=63 xoffset=4 yoffset=16 xadvance=80 page=0 chnl=0
|
||||
char id=76 x=436 y=282 width=37 height=63 xoffset=4 yoffset=16 xadvance=43 page=0 chnl=0
|
||||
char id=75 x=0 y=345 width=44 height=63 xoffset=4 yoffset=16 xadvance=51 page=0 chnl=0
|
||||
char id=73 x=44 y=345 width=16 height=63 xoffset=4 yoffset=16 xadvance=28 page=0 chnl=0
|
||||
char id=72 x=60 y=345 width=48 height=63 xoffset=4 yoffset=16 xadvance=60 page=0 chnl=0
|
||||
char id=70 x=108 y=345 width=37 height=63 xoffset=4 yoffset=16 xadvance=46 page=0 chnl=0
|
||||
char id=69 x=145 y=345 width=39 height=63 xoffset=4 yoffset=16 xadvance=48 page=0 chnl=0
|
||||
char id=68 x=184 y=345 width=50 height=63 xoffset=4 yoffset=16 xadvance=60 page=0 chnl=0
|
||||
char id=66 x=234 y=345 width=44 height=63 xoffset=4 yoffset=16 xadvance=53 page=0 chnl=0
|
||||
char id=65 x=278 y=345 width=55 height=63 xoffset=-2 yoffset=16 xadvance=56 page=0 chnl=0
|
||||
char id=59 x=333 y=345 width=24 height=59 xoffset=-1 yoffset=32 xadvance=29 page=0 chnl=0
|
||||
char id=116 x=357 y=345 width=33 height=59 xoffset=-2 yoffset=21 xadvance=35 page=0 chnl=0
|
||||
char id=115 x=390 y=345 width=35 height=50 xoffset=0 yoffset=30 xadvance=40 page=0 chnl=0
|
||||
char id=111 x=425 y=345 width=46 height=50 xoffset=1 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=101 x=0 y=408 width=43 height=50 xoffset=1 yoffset=30 xadvance=49 page=0 chnl=0
|
||||
char id=99 x=43 y=408 width=38 height=50 xoffset=1 yoffset=30 xadvance=43 page=0 chnl=0
|
||||
char id=97 x=81 y=408 width=39 height=50 xoffset=1 yoffset=30 xadvance=48 page=0 chnl=0
|
||||
char id=62 x=120 y=408 width=44 height=49 xoffset=1 yoffset=27 xadvance=49 page=0 chnl=0
|
||||
char id=60 x=164 y=408 width=45 height=49 xoffset=-1 yoffset=27 xadvance=49 page=0 chnl=0
|
||||
char id=117 x=209 y=408 width=41 height=49 xoffset=3 yoffset=31 xadvance=52 page=0 chnl=0
|
||||
char id=114 x=250 y=408 width=30 height=49 xoffset=4 yoffset=30 xadvance=36 page=0 chnl=0
|
||||
char id=110 x=280 y=408 width=40 height=49 xoffset=4 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=109 x=320 y=408 width=65 height=49 xoffset=4 yoffset=30 xadvance=76 page=0 chnl=0
|
||||
char id=43 x=385 y=408 width=46 height=48 xoffset=-1 yoffset=27 xadvance=49 page=0 chnl=0
|
||||
char id=58 x=431 y=408 width=17 height=48 xoffset=5 yoffset=31 xadvance=29 page=0 chnl=0
|
||||
char id=122 x=448 y=408 width=35 height=48 xoffset=1 yoffset=31 xadvance=40 page=0 chnl=0
|
||||
char id=120 x=0 y=458 width=42 height=48 xoffset=-1 yoffset=31 xadvance=44 page=0 chnl=0
|
||||
char id=119 x=42 y=458 width=66 height=48 xoffset=-1 yoffset=31 xadvance=68 page=0 chnl=0
|
||||
char id=118 x=108 y=458 width=44 height=48 xoffset=-2 yoffset=31 xadvance=45 page=0 chnl=0
|
||||
char id=42 x=152 y=458 width=38 height=40 xoffset=3 yoffset=11 xadvance=49 page=0 chnl=0
|
||||
char id=94 x=190 y=458 width=42 height=39 xoffset=1 yoffset=16 xadvance=49 page=0 chnl=0
|
||||
char id=61 x=232 y=458 width=43 height=31 xoffset=1 yoffset=35 xadvance=49 page=0 chnl=0
|
||||
char id=44 x=275 y=458 width=22 height=30 xoffset=-2 yoffset=61 xadvance=28 page=0 chnl=0
|
||||
char id=39 x=297 y=458 width=16 height=30 xoffset=2 yoffset=11 xadvance=25 page=0 chnl=0
|
||||
char id=34 x=313 y=458 width=31 height=30 xoffset=2 yoffset=11 xadvance=41 page=0 chnl=0
|
||||
char id=126 x=344 y=458 width=46 height=24 xoffset=0 yoffset=23 xadvance=49 page=0 chnl=0
|
||||
char id=96 x=390 y=458 width=22 height=21 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=0
|
||||
char id=46 x=412 y=458 width=17 height=18 xoffset=3 yoffset=61 xadvance=28 page=0 chnl=0
|
||||
char id=95 x=429 y=458 width=52 height=14 xoffset=-3 yoffset=81 xadvance=49 page=0 chnl=0
|
||||
char id=45 x=481 y=458 width=29 height=14 xoffset=0 yoffset=46 xadvance=33 page=0 chnl=0
|
After Width: | Height: | Size: 41 KiB |
|
@ -1,396 +0,0 @@
|
|||
# Blender v2.67 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Wood_container1
|
||||
v -83.000000 -83.000015 95.999985
|
||||
v 83.000000 -83.000015 95.999985
|
||||
v 83.000000 82.999985 96.000015
|
||||
v -83.000000 82.999985 96.000015
|
||||
v -83.000000 -82.999985 -96.000015
|
||||
v -83.000000 83.000015 -95.999985
|
||||
v 83.000000 83.000015 -95.999985
|
||||
v 83.000000 -82.999985 -96.000015
|
||||
v -83.000000 -96.000015 82.999985
|
||||
v -83.000000 -95.999985 -83.000015
|
||||
v 83.000000 -95.999985 -83.000015
|
||||
v 83.000000 -96.000015 82.999985
|
||||
v 96.000000 -83.000015 82.999985
|
||||
v 96.000000 -82.999985 -83.000015
|
||||
v 96.000000 83.000015 -82.999985
|
||||
v 96.000000 82.999985 83.000015
|
||||
v 83.000000 95.999985 83.000015
|
||||
v 83.000000 96.000015 -82.999985
|
||||
v -83.000000 96.000015 -82.999985
|
||||
v -83.000000 95.999985 83.000015
|
||||
v -96.000000 82.999985 83.000015
|
||||
v -96.000000 83.000015 -82.999985
|
||||
v -96.000000 -82.999985 -83.000015
|
||||
v -96.000000 -83.000015 82.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 99.999985 83.000015
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 99.999985 83.000015
|
||||
v 83.000000 99.999985 83.000015
|
||||
v 83.000000 99.999985 83.000015
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 83.000000 96.000015 -82.999985
|
||||
v 83.000000 96.000015 -82.999985
|
||||
v -83.000000 96.000015 -82.999985
|
||||
v -83.000000 96.000015 -82.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v -96.000000 83.000015 -82.999985
|
||||
v -96.000000 83.000015 -82.999985
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -83.000000 -82.999985 -96.000015
|
||||
v -83.000000 -82.999985 -96.000015
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -96.000000 -82.999985 -83.000015
|
||||
v -96.000000 -82.999985 -83.000015
|
||||
v -83.000000 95.999985 83.000015
|
||||
v -83.000000 95.999985 83.000015
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 96.000000 82.999985 83.000015
|
||||
v 96.000000 82.999985 83.000015
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 83.000000 -82.999985 -96.000015
|
||||
v 83.000000 -82.999985 -96.000015
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v 96.000000 -83.000015 82.999985
|
||||
v 96.000000 -83.000015 82.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v 96.000000 83.000015 -82.999985
|
||||
v 96.000000 83.000015 -82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v -83.000000 -96.000015 82.999985
|
||||
v -83.000000 -96.000015 82.999985
|
||||
v -83.000000 83.000015 -95.999985
|
||||
v -83.000000 83.000015 -95.999985
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 -95.999985 -83.000015
|
||||
v -83.000000 -95.999985 -83.000015
|
||||
v -96.000000 82.999985 83.000015
|
||||
v -96.000000 82.999985 83.000015
|
||||
v -96.000000 -83.000015 82.999985
|
||||
v -96.000000 -83.000015 82.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v 83.000000 83.000015 -95.999985
|
||||
v 83.000000 83.000015 -95.999985
|
||||
v 83.000000 82.999985 96.000015
|
||||
v 83.000000 82.999985 96.000015
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v 96.000000 -82.999985 -83.000015
|
||||
v 96.000000 -82.999985 -83.000015
|
||||
v 83.000000 95.999985 83.000015
|
||||
v 83.000000 95.999985 83.000015
|
||||
v -83.000000 -83.000015 95.999985
|
||||
v -83.000000 -83.000015 95.999985
|
||||
v -83.000000 82.999985 96.000015
|
||||
v -83.000000 82.999985 96.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 83.000000 -95.999985 -83.000015
|
||||
v 83.000000 -95.999985 -83.000015
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v 83.000000 -83.000015 95.999985
|
||||
v 83.000000 -83.000015 95.999985
|
||||
v 83.000000 -96.000015 82.999985
|
||||
v 83.000000 -96.000015 82.999985
|
||||
vt 0.056200 0.549000
|
||||
vt 0.454300 0.549000
|
||||
vt 0.454300 0.947100
|
||||
vt 0.056200 0.947100
|
||||
vt 0.947600 0.452400
|
||||
vt 0.947600 0.058200
|
||||
vt 0.553400 0.058200
|
||||
vt 0.553400 0.550900
|
||||
vt 0.947700 0.550900
|
||||
vt 0.947700 0.945200
|
||||
vt 0.058100 0.452400
|
||||
vt 0.058100 0.058200
|
||||
vt 0.452300 0.058200
|
||||
vt 0.553400 0.945200
|
||||
vt 0.013000 0.505800
|
||||
vt 0.497500 0.505800
|
||||
vt 0.456300 0.547000
|
||||
vt 0.497500 0.990300
|
||||
vt 0.456300 0.949100
|
||||
vt 0.013000 0.990300
|
||||
vt 0.054200 0.949100
|
||||
vt 0.054200 0.547000
|
||||
vt 0.992800 0.497600
|
||||
vt 0.992800 0.013100
|
||||
vt 0.951600 0.456400
|
||||
vt 0.508300 0.013100
|
||||
vt 0.549400 0.054200
|
||||
vt 0.508300 0.497600
|
||||
vt 0.508300 0.505800
|
||||
vt 0.992800 0.505800
|
||||
vt 0.951600 0.547000
|
||||
vt 0.992800 0.990300
|
||||
vt 0.951600 0.949100
|
||||
vt 0.508300 0.990300
|
||||
vt 0.549500 0.949100
|
||||
vt 0.549500 0.547000
|
||||
vt 0.012900 0.497600
|
||||
vt 0.012900 0.013100
|
||||
vt 0.054100 0.456400
|
||||
vt 0.497400 0.013100
|
||||
vt 0.456300 0.054200
|
||||
vt 0.497400 0.497600
|
||||
vt 0.489900 0.528500
|
||||
vt 0.014400 0.528500
|
||||
vt 0.014400 0.510300
|
||||
vt 0.489900 0.510300
|
||||
vt 0.489900 0.528600
|
||||
vt 0.014400 0.528600
|
||||
vt 0.014400 0.510400
|
||||
vt 0.489900 0.510400
|
||||
vt 0.553400 0.452400
|
||||
vt 0.452300 0.452400
|
||||
vt 0.951600 0.054200
|
||||
vt 0.549400 0.456400
|
||||
vt 0.054100 0.054200
|
||||
vt 0.456300 0.456400
|
||||
vn 0.000000 0.000000 0.999969
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.000000 -0.999969
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -0.999969 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.999969 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.999969 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn -0.999969 0.000000 0.000000
|
||||
s 1
|
||||
f 1/1/1 2/2/2 187/3/1
|
||||
f 102/2/3 6/3/4 7/4/3
|
||||
f 159/5/5 169/6/6 208/7/5
|
||||
f 13/8/7 195/9/8 154/10/7
|
||||
f 17/11/9 18/12/10 19/13/9
|
||||
f 21/14/11 97/10/12 24/8/12
|
||||
f 90/15/2 175/16/2 151/17/2
|
||||
f 177/16/2 204/18/2 115/19/2
|
||||
f 205/18/2 59/20/2 32/21/2
|
||||
f 57/20/2 89/15/2 28/22/2
|
||||
f 33/16/4 65/18/4 105/17/4
|
||||
f 67/18/4 37/20/4 38/21/4
|
||||
f 125/20/4 39/15/4 131/21/4
|
||||
f 108/15/4 180/16/4 104/17/4
|
||||
f 25/23/6 181/24/6 42/25/6
|
||||
f 183/24/6 110/26/6 79/27/6
|
||||
f 109/26/6 26/28/6 43/27/6
|
||||
f 178/28/6 92/23/6 94/25/6
|
||||
f 176/29/8 107/30/8 45/31/8
|
||||
f 111/30/8 126/32/8 156/33/8
|
||||
f 128/32/8 203/34/8 135/35/8
|
||||
f 207/34/8 179/29/8 144/36/8
|
||||
f 29/37/10 127/38/10 50/39/10
|
||||
f 129/38/10 34/40/10 51/41/10
|
||||
f 66/40/10 31/42/10 71/41/10
|
||||
f 60/42/10 206/37/10 76/39/10
|
||||
f 58/34/11 68/32/11 189/35/11
|
||||
f 69/32/11 182/30/11 100/33/11
|
||||
f 184/30/11 91/29/11 164/31/11
|
||||
f 93/29/11 61/34/11 211/36/11
|
||||
f 213/43/9 199/44/10 193/45/9
|
||||
f 153/45/11 116/46/11 214/44/11
|
||||
f 117/45/5 119/46/6 201/43/5
|
||||
f 200/43/8 202/44/8 120/45/8
|
||||
f 36/47/8 167/48/8 161/49/8
|
||||
f 168/43/5 130/44/6 185/49/5
|
||||
f 132/47/11 112/48/11 186/50/11
|
||||
f 114/47/9 106/48/10 103/49/9
|
||||
f 95/47/8 146/48/8 10/49/8
|
||||
f 148/43/1 80/44/2 11/45/1
|
||||
f 81/49/11 83/50/11 209/48/11
|
||||
f 84/49/3 96/50/4 160/47/3
|
||||
f 143/43/9 140/44/10 14/45/9
|
||||
f 142/49/1 47/50/2 15/47/1
|
||||
f 158/49/5 48/50/6 16/47/5
|
||||
f 137/49/3 145/50/4 150/47/3
|
||||
f 77/43/11 73/44/11 197/46/11
|
||||
f 75/49/1 70/50/2 87/47/1
|
||||
f 72/49/8 62/50/8 20/47/8
|
||||
f 64/47/3 78/48/4 198/49/3
|
||||
f 54/47/5 53/48/6 22/49/5
|
||||
f 101/47/1 55/48/2 121/49/1
|
||||
f 165/49/9 210/50/10 173/47/9
|
||||
f 212/43/3 191/44/4 172/49/3
|
||||
f 4/4/2 1/1/1 187/3/1
|
||||
f 138/1/4 102/2/3 7/4/3
|
||||
f 12/51/6 159/5/5 208/7/5
|
||||
f 133/14/8 13/8/7 154/10/7
|
||||
f 123/52/10 17/11/9 19/13/9
|
||||
f 97/10/12 23/9/11 24/8/12
|
||||
f 192/22/2 90/15/2 151/17/2
|
||||
f 27/17/2 177/16/2 115/19/2
|
||||
f 30/19/2 205/18/2 32/21/2
|
||||
f 118/21/2 57/20/2 28/22/2
|
||||
f 65/18/4 166/19/4 105/17/4
|
||||
f 35/19/4 67/18/4 38/21/4
|
||||
f 39/15/4 40/22/4 131/21/4
|
||||
f 113/22/4 108/15/4 104/17/4
|
||||
f 181/24/6 147/53/6 42/25/6
|
||||
f 41/53/6 183/24/6 79/27/6
|
||||
f 26/28/6 44/54/6 43/27/6
|
||||
f 82/54/6 178/28/6 94/25/6
|
||||
f 46/36/8 176/29/8 45/31/8
|
||||
f 141/31/8 111/30/8 156/33/8
|
||||
f 157/33/8 128/32/8 135/35/8
|
||||
f 136/35/8 207/34/8 144/36/8
|
||||
f 127/38/10 49/55/10 50/39/10
|
||||
f 74/55/10 129/38/10 51/41/10
|
||||
f 31/42/10 52/56/10 71/41/10
|
||||
f 63/56/10 60/42/10 76/39/10
|
||||
f 68/32/11 99/33/11 189/35/11
|
||||
f 182/30/11 163/31/11 100/33/11
|
||||
f 91/29/11 56/36/11 164/31/11
|
||||
f 61/34/11 190/35/11 211/36/11
|
||||
f 152/46/10 213/43/9 193/45/9
|
||||
f 116/46/11 3/43/11 214/44/11
|
||||
f 188/44/6 117/45/5 201/43/5
|
||||
f 194/46/8 200/43/8 120/45/8
|
||||
f 5/50/8 36/47/8 161/49/8
|
||||
f 162/50/6 168/43/5 185/49/5
|
||||
f 112/48/11 8/49/11 186/50/11
|
||||
f 139/50/10 114/47/9 103/49/9
|
||||
f 9/50/8 95/47/8 10/49/8
|
||||
f 170/46/2 148/43/1 11/45/1
|
||||
f 83/50/11 215/47/11 209/48/11
|
||||
f 216/48/4 84/49/3 160/47/3
|
||||
f 149/46/10 143/43/9 14/45/9
|
||||
f 196/48/2 142/49/1 15/47/1
|
||||
f 155/48/6 158/49/5 16/47/5
|
||||
f 134/48/4 137/49/3 150/47/3
|
||||
f 73/44/11 85/45/11 197/46/11
|
||||
f 86/48/2 75/49/1 87/47/1
|
||||
f 88/48/8 72/49/8 20/47/8
|
||||
f 124/50/4 64/47/3 198/49/3
|
||||
f 171/50/6 54/47/5 22/49/5
|
||||
f 98/50/2 101/47/1 121/49/1
|
||||
f 122/48/10 165/49/9 173/47/9
|
||||
f 174/50/4 212/43/3 172/49/3
|
|
@ -0,0 +1,14 @@
|
|||
#version 330
|
||||
|
||||
in vec2 pass_textureCoords;
|
||||
|
||||
out vec4 out_colour;
|
||||
|
||||
uniform vec3 colour;
|
||||
uniform smapler2D fontAtlas;
|
||||
|
||||
void main(void){
|
||||
|
||||
out_colour = vec4(colour, texture(fontAtlas, pass_textureCoords).a);
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
#version 330
|
||||
|
||||
in vec2 position;
|
||||
in vec2 textureCoords;
|
||||
|
||||
out vec2 pass_textureCoords;
|
||||
|
||||
uniform vec2 translation;
|
||||
|
||||
void main(void){
|
||||
|
||||
gl_Position = vec4(position, 0.0, 1.0);
|
||||
pass_textureCoords = textureCoords;
|
||||
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
#version 400 core
|
||||
|
||||
in vec2 pass_textureCoordinates;
|
||||
in vec3 surfaceNormal;
|
||||
in vec3 toLightVector[4];
|
||||
in vec3 toCameraVector;
|
||||
in float visibility;
|
||||
|
@ -9,6 +8,7 @@ in float visibility;
|
|||
out vec4 out_Color;
|
||||
|
||||
uniform sampler2D modelTexture;
|
||||
uniform sampler2D normalMap;
|
||||
uniform vec3 lightColour[4];
|
||||
uniform vec3 attenuation[4];
|
||||
uniform float shineDamper;
|
||||
|
@ -17,7 +17,9 @@ uniform vec3 skyColour;
|
|||
|
||||
void main(void){
|
||||
|
||||
vec3 unitNormal = normalize(surfaceNormal);
|
||||
vec4 normalMapValue = 2.0 * texture(normalMap, pass_textureCoordinates) - 1.0;
|
||||
|
||||
vec3 unitNormal = normalize(normalMapValue.rgb);
|
||||
vec3 unitVectorToCamera = normalize(toCameraVector);
|
||||
|
||||
vec3 totalDiffuse = vec3(0.0);
|
||||
|
@ -47,4 +49,4 @@ void main(void){
|
|||
out_Color = vec4(totalDiffuse,1.0) * textureColour + vec4(totalSpecular,1.0);
|
||||
out_Color = mix(vec4(skyColour,1.0),out_Color, visibility);
|
||||
|
||||
}
|
||||
}
|
|
@ -3,12 +3,13 @@
|
|||
in vec3 position;
|
||||
in vec2 textureCoordinates;
|
||||
in vec3 normal;
|
||||
in vec3 tangent;
|
||||
|
||||
out vec2 pass_textureCoordinates;
|
||||
out vec3 surfaceNormal;
|
||||
out vec3 toLightVector[4];
|
||||
out vec3 toCameraVector;
|
||||
out float visibility;
|
||||
out vec3 pass_tangent;
|
||||
|
||||
uniform mat4 transformationMatrix;
|
||||
uniform mat4 projectionMatrix;
|
||||
|
@ -25,22 +26,35 @@ uniform vec4 plane;
|
|||
|
||||
void main(void){
|
||||
|
||||
|
||||
vec4 worldPosition = transformationMatrix * vec4(position,1.0);
|
||||
gl_ClipDistance[0] = dot(worldPosition, plane);
|
||||
mat4 modelViewMatrix = viewMatrix * transformationMatrix;
|
||||
vec4 positionRelativeToCam = modelViewMatrix * vec4(position,1.0);
|
||||
gl_Position = projectionMatrix * positionRelativeToCam;
|
||||
|
||||
pass_textureCoordinates = (textureCoordinates/numberOfRows) + offset;
|
||||
pass_textureCoordinates = (textureCoordinates);
|
||||
|
||||
surfaceNormal = (modelViewMatrix * vec4(normal,0.0)).xyz;
|
||||
vec3 surfaceNormal = (modelViewMatrix * vec4(normal,0.0)).xyz;
|
||||
|
||||
vec3 norm = normalize(surfaceNormal);
|
||||
vec3 tang = normalize((modelViewMatrix * vec4(tangent, 0.0)).xyz);
|
||||
vec3 bitang = normalize(cross(norm, tang));
|
||||
|
||||
mat3 toTangentSpace = mat3(
|
||||
|
||||
tang.x, bitang.x, norm.x,
|
||||
tang.y, bitang.y, norm.y,
|
||||
tang.z, bitang.z, norm.z
|
||||
);
|
||||
|
||||
for(int i=0;i<4;i++){
|
||||
toLightVector[i] = lightPositionEyeSpace[i] - positionRelativeToCam.xyz;
|
||||
toLightVector[i] = toTangentSpace * (lightPositionEyeSpace[i] - positionRelativeToCam.xyz);
|
||||
}
|
||||
toCameraVector = -positionRelativeToCam.xyz;
|
||||
toCameraVector = toTangentSpace * (-positionRelativeToCam.xyz);
|
||||
|
||||
float distance = length(positionRelativeToCam.xyz);
|
||||
visibility = exp(-pow((distance*density),gradient));
|
||||
visibility = clamp(visibility,0.0,1.0);
|
||||
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 2.2 MiB |
|
@ -0,0 +1,100 @@
|
|||
info face="Calibri" size=87 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=3,3,3,3 spacing=0,0
|
||||
common lineHeight=113 base=75 scaleW=512 scaleH=512 pages=1 packed=0
|
||||
page id=0 file="calibri.png"
|
||||
chars count=95
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=75 xadvance=26 page=0 chnl=0
|
||||
char id=124 x=0 y=0 width=15 height=85 xoffset=13 yoffset=10 xadvance=46 page=0 chnl=0
|
||||
char id=36 x=15 y=0 width=44 height=83 xoffset=0 yoffset=6 xadvance=50 page=0 chnl=0
|
||||
char id=41 x=59 y=0 width=24 height=83 xoffset=2 yoffset=11 xadvance=32 page=0 chnl=0
|
||||
char id=40 x=83 y=0 width=23 height=83 xoffset=3 yoffset=11 xadvance=32 page=0 chnl=0
|
||||
char id=92 x=106 y=0 width=41 height=82 xoffset=-3 yoffset=9 xadvance=40 page=0 chnl=0
|
||||
char id=47 x=147 y=0 width=40 height=82 xoffset=-3 yoffset=9 xadvance=40 page=0 chnl=0
|
||||
char id=125 x=187 y=0 width=30 height=82 xoffset=1 yoffset=11 xadvance=33 page=0 chnl=0
|
||||
char id=123 x=217 y=0 width=29 height=82 xoffset=0 yoffset=11 xadvance=33 page=0 chnl=0
|
||||
char id=93 x=246 y=0 width=23 height=81 xoffset=0 yoffset=12 xadvance=33 page=0 chnl=0
|
||||
char id=91 x=269 y=0 width=22 height=81 xoffset=5 yoffset=12 xadvance=33 page=0 chnl=0
|
||||
char id=106 x=291 y=0 width=26 height=79 xoffset=-5 yoffset=16 xadvance=27 page=0 chnl=0
|
||||
char id=64 x=317 y=0 width=71 height=74 xoffset=4 yoffset=15 xadvance=84 page=0 chnl=0
|
||||
char id=81 x=388 y=0 width=65 height=72 xoffset=1 yoffset=15 xadvance=65 page=0 chnl=0
|
||||
char id=38 x=0 y=85 width=59 height=68 xoffset=1 yoffset=12 xadvance=65 page=0 chnl=0
|
||||
char id=63 x=59 y=85 width=39 height=68 xoffset=3 yoffset=12 xadvance=46 page=0 chnl=0
|
||||
char id=33 x=98 y=85 width=17 height=68 xoffset=8 yoffset=12 xadvance=34 page=0 chnl=0
|
||||
char id=102 x=115 y=85 width=35 height=68 xoffset=-2 yoffset=11 xadvance=33 page=0 chnl=0
|
||||
char id=100 x=150 y=85 width=43 height=68 xoffset=1 yoffset=12 xadvance=52 page=0 chnl=0
|
||||
char id=98 x=193 y=85 width=43 height=68 xoffset=4 yoffset=12 xadvance=52 page=0 chnl=0
|
||||
char id=37 x=236 y=85 width=64 height=67 xoffset=0 yoffset=14 xadvance=68 page=0 chnl=0
|
||||
char id=108 x=300 y=85 width=16 height=67 xoffset=4 yoffset=12 xadvance=26 page=0 chnl=0
|
||||
char id=107 x=316 y=85 width=38 height=67 xoffset=4 yoffset=12 xadvance=46 page=0 chnl=0
|
||||
char id=104 x=354 y=85 width=40 height=67 xoffset=4 yoffset=12 xadvance=52 page=0 chnl=0
|
||||
char id=48 x=394 y=85 width=46 height=65 xoffset=0 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=57 x=440 y=85 width=44 height=65 xoffset=0 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=56 x=0 y=153 width=45 height=65 xoffset=0 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=54 x=45 y=153 width=44 height=65 xoffset=2 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=51 x=89 y=153 width=42 height=65 xoffset=1 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=113 x=131 y=153 width=43 height=65 xoffset=1 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=112 x=174 y=153 width=43 height=65 xoffset=4 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=103 x=217 y=153 width=44 height=65 xoffset=-1 yoffset=30 xadvance=47 page=0 chnl=0
|
||||
char id=83 x=261 y=153 width=42 height=65 xoffset=0 yoffset=15 xadvance=46 page=0 chnl=0
|
||||
char id=79 x=303 y=153 width=57 height=65 xoffset=1 yoffset=15 xadvance=64 page=0 chnl=0
|
||||
char id=71 x=360 y=153 width=53 height=65 xoffset=1 yoffset=15 xadvance=61 page=0 chnl=0
|
||||
char id=67 x=413 y=153 width=48 height=65 xoffset=1 yoffset=15 xadvance=52 page=0 chnl=0
|
||||
char id=53 x=461 y=153 width=43 height=64 xoffset=1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=50 x=0 y=218 width=42 height=64 xoffset=2 yoffset=15 xadvance=50 page=0 chnl=0
|
||||
char id=121 x=42 y=218 width=44 height=64 xoffset=-2 yoffset=31 xadvance=45 page=0 chnl=0
|
||||
char id=85 x=86 y=218 width=49 height=64 xoffset=4 yoffset=16 xadvance=62 page=0 chnl=0
|
||||
char id=74 x=135 y=218 width=29 height=64 xoffset=-3 yoffset=16 xadvance=34 page=0 chnl=0
|
||||
char id=127 x=164 y=218 width=49 height=63 xoffset=-1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=35 x=213 y=218 width=48 height=63 xoffset=-2 yoffset=16 xadvance=49 page=0 chnl=0
|
||||
char id=55 x=261 y=218 width=44 height=63 xoffset=1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=52 x=305 y=218 width=47 height=63 xoffset=-1 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=49 x=352 y=218 width=40 height=63 xoffset=5 yoffset=16 xadvance=50 page=0 chnl=0
|
||||
char id=105 x=392 y=218 width=17 height=63 xoffset=3 yoffset=16 xadvance=26 page=0 chnl=0
|
||||
char id=90 x=409 y=218 width=44 height=63 xoffset=-1 yoffset=16 xadvance=47 page=0 chnl=0
|
||||
char id=89 x=453 y=218 width=49 height=63 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
|
||||
char id=88 x=0 y=282 width=48 height=63 xoffset=-1 yoffset=16 xadvance=51 page=0 chnl=0
|
||||
char id=87 x=48 y=282 width=80 height=63 xoffset=-1 yoffset=16 xadvance=83 page=0 chnl=0
|
||||
char id=86 x=128 y=282 width=54 height=63 xoffset=-2 yoffset=16 xadvance=55 page=0 chnl=0
|
||||
char id=84 x=182 y=282 width=50 height=63 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
|
||||
char id=82 x=232 y=282 width=44 height=63 xoffset=4 yoffset=16 xadvance=53 page=0 chnl=0
|
||||
char id=80 x=276 y=282 width=42 height=63 xoffset=4 yoffset=16 xadvance=51 page=0 chnl=0
|
||||
char id=78 x=318 y=282 width=50 height=63 xoffset=4 yoffset=16 xadvance=62 page=0 chnl=0
|
||||
char id=77 x=368 y=282 width=68 height=63 xoffset=4 yoffset=16 xadvance=80 page=0 chnl=0
|
||||
char id=76 x=436 y=282 width=37 height=63 xoffset=4 yoffset=16 xadvance=43 page=0 chnl=0
|
||||
char id=75 x=0 y=345 width=44 height=63 xoffset=4 yoffset=16 xadvance=51 page=0 chnl=0
|
||||
char id=73 x=44 y=345 width=16 height=63 xoffset=4 yoffset=16 xadvance=28 page=0 chnl=0
|
||||
char id=72 x=60 y=345 width=48 height=63 xoffset=4 yoffset=16 xadvance=60 page=0 chnl=0
|
||||
char id=70 x=108 y=345 width=37 height=63 xoffset=4 yoffset=16 xadvance=46 page=0 chnl=0
|
||||
char id=69 x=145 y=345 width=39 height=63 xoffset=4 yoffset=16 xadvance=48 page=0 chnl=0
|
||||
char id=68 x=184 y=345 width=50 height=63 xoffset=4 yoffset=16 xadvance=60 page=0 chnl=0
|
||||
char id=66 x=234 y=345 width=44 height=63 xoffset=4 yoffset=16 xadvance=53 page=0 chnl=0
|
||||
char id=65 x=278 y=345 width=55 height=63 xoffset=-2 yoffset=16 xadvance=56 page=0 chnl=0
|
||||
char id=59 x=333 y=345 width=24 height=59 xoffset=-1 yoffset=32 xadvance=29 page=0 chnl=0
|
||||
char id=116 x=357 y=345 width=33 height=59 xoffset=-2 yoffset=21 xadvance=35 page=0 chnl=0
|
||||
char id=115 x=390 y=345 width=35 height=50 xoffset=0 yoffset=30 xadvance=40 page=0 chnl=0
|
||||
char id=111 x=425 y=345 width=46 height=50 xoffset=1 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=101 x=0 y=408 width=43 height=50 xoffset=1 yoffset=30 xadvance=49 page=0 chnl=0
|
||||
char id=99 x=43 y=408 width=38 height=50 xoffset=1 yoffset=30 xadvance=43 page=0 chnl=0
|
||||
char id=97 x=81 y=408 width=39 height=50 xoffset=1 yoffset=30 xadvance=48 page=0 chnl=0
|
||||
char id=62 x=120 y=408 width=44 height=49 xoffset=1 yoffset=27 xadvance=49 page=0 chnl=0
|
||||
char id=60 x=164 y=408 width=45 height=49 xoffset=-1 yoffset=27 xadvance=49 page=0 chnl=0
|
||||
char id=117 x=209 y=408 width=41 height=49 xoffset=3 yoffset=31 xadvance=52 page=0 chnl=0
|
||||
char id=114 x=250 y=408 width=30 height=49 xoffset=4 yoffset=30 xadvance=36 page=0 chnl=0
|
||||
char id=110 x=280 y=408 width=40 height=49 xoffset=4 yoffset=30 xadvance=52 page=0 chnl=0
|
||||
char id=109 x=320 y=408 width=65 height=49 xoffset=4 yoffset=30 xadvance=76 page=0 chnl=0
|
||||
char id=43 x=385 y=408 width=46 height=48 xoffset=-1 yoffset=27 xadvance=49 page=0 chnl=0
|
||||
char id=58 x=431 y=408 width=17 height=48 xoffset=5 yoffset=31 xadvance=29 page=0 chnl=0
|
||||
char id=122 x=448 y=408 width=35 height=48 xoffset=1 yoffset=31 xadvance=40 page=0 chnl=0
|
||||
char id=120 x=0 y=458 width=42 height=48 xoffset=-1 yoffset=31 xadvance=44 page=0 chnl=0
|
||||
char id=119 x=42 y=458 width=66 height=48 xoffset=-1 yoffset=31 xadvance=68 page=0 chnl=0
|
||||
char id=118 x=108 y=458 width=44 height=48 xoffset=-2 yoffset=31 xadvance=45 page=0 chnl=0
|
||||
char id=42 x=152 y=458 width=38 height=40 xoffset=3 yoffset=11 xadvance=49 page=0 chnl=0
|
||||
char id=94 x=190 y=458 width=42 height=39 xoffset=1 yoffset=16 xadvance=49 page=0 chnl=0
|
||||
char id=61 x=232 y=458 width=43 height=31 xoffset=1 yoffset=35 xadvance=49 page=0 chnl=0
|
||||
char id=44 x=275 y=458 width=22 height=30 xoffset=-2 yoffset=61 xadvance=28 page=0 chnl=0
|
||||
char id=39 x=297 y=458 width=16 height=30 xoffset=2 yoffset=11 xadvance=25 page=0 chnl=0
|
||||
char id=34 x=313 y=458 width=31 height=30 xoffset=2 yoffset=11 xadvance=41 page=0 chnl=0
|
||||
char id=126 x=344 y=458 width=46 height=24 xoffset=0 yoffset=23 xadvance=49 page=0 chnl=0
|
||||
char id=96 x=390 y=458 width=22 height=21 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=0
|
||||
char id=46 x=412 y=458 width=17 height=18 xoffset=3 yoffset=61 xadvance=28 page=0 chnl=0
|
||||
char id=95 x=429 y=458 width=52 height=14 xoffset=-3 yoffset=81 xadvance=49 page=0 chnl=0
|
||||
char id=45 x=481 y=458 width=29 height=14 xoffset=0 yoffset=46 xadvance=33 page=0 chnl=0
|
After Width: | Height: | Size: 41 KiB |
|
@ -1,396 +0,0 @@
|
|||
# Blender v2.67 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Wood_container1
|
||||
v -83.000000 -83.000015 95.999985
|
||||
v 83.000000 -83.000015 95.999985
|
||||
v 83.000000 82.999985 96.000015
|
||||
v -83.000000 82.999985 96.000015
|
||||
v -83.000000 -82.999985 -96.000015
|
||||
v -83.000000 83.000015 -95.999985
|
||||
v 83.000000 83.000015 -95.999985
|
||||
v 83.000000 -82.999985 -96.000015
|
||||
v -83.000000 -96.000015 82.999985
|
||||
v -83.000000 -95.999985 -83.000015
|
||||
v 83.000000 -95.999985 -83.000015
|
||||
v 83.000000 -96.000015 82.999985
|
||||
v 96.000000 -83.000015 82.999985
|
||||
v 96.000000 -82.999985 -83.000015
|
||||
v 96.000000 83.000015 -82.999985
|
||||
v 96.000000 82.999985 83.000015
|
||||
v 83.000000 95.999985 83.000015
|
||||
v 83.000000 96.000015 -82.999985
|
||||
v -83.000000 96.000015 -82.999985
|
||||
v -83.000000 95.999985 83.000015
|
||||
v -96.000000 82.999985 83.000015
|
||||
v -96.000000 83.000015 -82.999985
|
||||
v -96.000000 -82.999985 -83.000015
|
||||
v -96.000000 -83.000015 82.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 99.999985 83.000015
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -100.000000 99.999985 100.000015
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -83.000000 99.999985 83.000015
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -100.000000 100.000015 -99.999985
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v -83.000000 100.000015 -82.999985
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 100.000015 -82.999985
|
||||
v 83.000000 99.999985 83.000015
|
||||
v 83.000000 99.999985 83.000015
|
||||
v 83.000000 99.999985 83.000015
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -99.999985 -83.000015
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 83.000000 -100.000015 82.999985
|
||||
v 83.000000 96.000015 -82.999985
|
||||
v 83.000000 96.000015 -82.999985
|
||||
v -83.000000 96.000015 -82.999985
|
||||
v -83.000000 96.000015 -82.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -100.000000 -100.000015 99.999985
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v -83.000000 -100.000015 82.999985
|
||||
v -96.000000 83.000015 -82.999985
|
||||
v -96.000000 83.000015 -82.999985
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -100.000000 83.000015 -82.999985
|
||||
v -83.000000 -82.999985 -96.000015
|
||||
v -83.000000 -82.999985 -96.000015
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v -83.000000 -82.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 100.000000 -99.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v 83.000000 -82.999985 -100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v 83.000000 82.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -83.000000 82.999985 100.000015
|
||||
v -96.000000 -82.999985 -83.000015
|
||||
v -96.000000 -82.999985 -83.000015
|
||||
v -83.000000 95.999985 83.000015
|
||||
v -83.000000 95.999985 83.000015
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 100.000000 100.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 83.000000 83.000015 -99.999985
|
||||
v 96.000000 82.999985 83.000015
|
||||
v 96.000000 82.999985 83.000015
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 100.000000 82.999985 83.000015
|
||||
v 83.000000 -82.999985 -96.000015
|
||||
v 83.000000 -82.999985 -96.000015
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -82.999985 -83.000015
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v 100.000000 -83.000015 82.999985
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v -83.000000 -99.999985 -83.000015
|
||||
v 96.000000 -83.000015 82.999985
|
||||
v 96.000000 -83.000015 82.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v 83.000000 -83.000015 99.999985
|
||||
v 96.000000 83.000015 -82.999985
|
||||
v 96.000000 83.000015 -82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v 100.000000 83.000015 -82.999985
|
||||
v -83.000000 -96.000015 82.999985
|
||||
v -83.000000 -96.000015 82.999985
|
||||
v -83.000000 83.000015 -95.999985
|
||||
v -83.000000 83.000015 -95.999985
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -100.000000 -82.999985 -83.000015
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 83.000015 -99.999985
|
||||
v -83.000000 -95.999985 -83.000015
|
||||
v -83.000000 -95.999985 -83.000015
|
||||
v -96.000000 82.999985 83.000015
|
||||
v -96.000000 82.999985 83.000015
|
||||
v -96.000000 -83.000015 82.999985
|
||||
v -96.000000 -83.000015 82.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v 100.000000 -100.000015 99.999985
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v -100.000000 -99.999985 -100.000015
|
||||
v 83.000000 83.000015 -95.999985
|
||||
v 83.000000 83.000015 -95.999985
|
||||
v 83.000000 82.999985 96.000015
|
||||
v 83.000000 82.999985 96.000015
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -100.000000 82.999985 83.000015
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v -83.000000 -83.000015 99.999985
|
||||
v 96.000000 -82.999985 -83.000015
|
||||
v 96.000000 -82.999985 -83.000015
|
||||
v 83.000000 95.999985 83.000015
|
||||
v 83.000000 95.999985 83.000015
|
||||
v -83.000000 -83.000015 95.999985
|
||||
v -83.000000 -83.000015 95.999985
|
||||
v -83.000000 82.999985 96.000015
|
||||
v -83.000000 82.999985 96.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 100.000000 99.999985 100.000015
|
||||
v 83.000000 -95.999985 -83.000015
|
||||
v 83.000000 -95.999985 -83.000015
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v -100.000000 -83.000015 82.999985
|
||||
v 83.000000 -83.000015 95.999985
|
||||
v 83.000000 -83.000015 95.999985
|
||||
v 83.000000 -96.000015 82.999985
|
||||
v 83.000000 -96.000015 82.999985
|
||||
vt 0.056200 0.549000
|
||||
vt 0.454300 0.549000
|
||||
vt 0.454300 0.947100
|
||||
vt 0.056200 0.947100
|
||||
vt 0.947600 0.452400
|
||||
vt 0.947600 0.058200
|
||||
vt 0.553400 0.058200
|
||||
vt 0.553400 0.550900
|
||||
vt 0.947700 0.550900
|
||||
vt 0.947700 0.945200
|
||||
vt 0.058100 0.452400
|
||||
vt 0.058100 0.058200
|
||||
vt 0.452300 0.058200
|
||||
vt 0.553400 0.945200
|
||||
vt 0.013000 0.505800
|
||||
vt 0.497500 0.505800
|
||||
vt 0.456300 0.547000
|
||||
vt 0.497500 0.990300
|
||||
vt 0.456300 0.949100
|
||||
vt 0.013000 0.990300
|
||||
vt 0.054200 0.949100
|
||||
vt 0.054200 0.547000
|
||||
vt 0.992800 0.497600
|
||||
vt 0.992800 0.013100
|
||||
vt 0.951600 0.456400
|
||||
vt 0.508300 0.013100
|
||||
vt 0.549400 0.054200
|
||||
vt 0.508300 0.497600
|
||||
vt 0.508300 0.505800
|
||||
vt 0.992800 0.505800
|
||||
vt 0.951600 0.547000
|
||||
vt 0.992800 0.990300
|
||||
vt 0.951600 0.949100
|
||||
vt 0.508300 0.990300
|
||||
vt 0.549500 0.949100
|
||||
vt 0.549500 0.547000
|
||||
vt 0.012900 0.497600
|
||||
vt 0.012900 0.013100
|
||||
vt 0.054100 0.456400
|
||||
vt 0.497400 0.013100
|
||||
vt 0.456300 0.054200
|
||||
vt 0.497400 0.497600
|
||||
vt 0.489900 0.528500
|
||||
vt 0.014400 0.528500
|
||||
vt 0.014400 0.510300
|
||||
vt 0.489900 0.510300
|
||||
vt 0.489900 0.528600
|
||||
vt 0.014400 0.528600
|
||||
vt 0.014400 0.510400
|
||||
vt 0.489900 0.510400
|
||||
vt 0.553400 0.452400
|
||||
vt 0.452300 0.452400
|
||||
vt 0.951600 0.054200
|
||||
vt 0.549400 0.456400
|
||||
vt 0.054100 0.054200
|
||||
vt 0.456300 0.456400
|
||||
vn 0.000000 0.000000 0.999969
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.000000 -0.999969
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -0.999969 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.999969 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.999969 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn -0.999969 0.000000 0.000000
|
||||
s 1
|
||||
f 1/1/1 2/2/2 187/3/1
|
||||
f 102/2/3 6/3/4 7/4/3
|
||||
f 159/5/5 169/6/6 208/7/5
|
||||
f 13/8/7 195/9/8 154/10/7
|
||||
f 17/11/9 18/12/10 19/13/9
|
||||
f 21/14/11 97/10/12 24/8/12
|
||||
f 90/15/2 175/16/2 151/17/2
|
||||
f 177/16/2 204/18/2 115/19/2
|
||||
f 205/18/2 59/20/2 32/21/2
|
||||
f 57/20/2 89/15/2 28/22/2
|
||||
f 33/16/4 65/18/4 105/17/4
|
||||
f 67/18/4 37/20/4 38/21/4
|
||||
f 125/20/4 39/15/4 131/21/4
|
||||
f 108/15/4 180/16/4 104/17/4
|
||||
f 25/23/6 181/24/6 42/25/6
|
||||
f 183/24/6 110/26/6 79/27/6
|
||||
f 109/26/6 26/28/6 43/27/6
|
||||
f 178/28/6 92/23/6 94/25/6
|
||||
f 176/29/8 107/30/8 45/31/8
|
||||
f 111/30/8 126/32/8 156/33/8
|
||||
f 128/32/8 203/34/8 135/35/8
|
||||
f 207/34/8 179/29/8 144/36/8
|
||||
f 29/37/10 127/38/10 50/39/10
|
||||
f 129/38/10 34/40/10 51/41/10
|
||||
f 66/40/10 31/42/10 71/41/10
|
||||
f 60/42/10 206/37/10 76/39/10
|
||||
f 58/34/11 68/32/11 189/35/11
|
||||
f 69/32/11 182/30/11 100/33/11
|
||||
f 184/30/11 91/29/11 164/31/11
|
||||
f 93/29/11 61/34/11 211/36/11
|
||||
f 213/43/9 199/44/10 193/45/9
|
||||
f 153/45/11 116/46/11 214/44/11
|
||||
f 117/45/5 119/46/6 201/43/5
|
||||
f 200/43/8 202/44/8 120/45/8
|
||||
f 36/47/8 167/48/8 161/49/8
|
||||
f 168/43/5 130/44/6 185/49/5
|
||||
f 132/47/11 112/48/11 186/50/11
|
||||
f 114/47/9 106/48/10 103/49/9
|
||||
f 95/47/8 146/48/8 10/49/8
|
||||
f 148/43/1 80/44/2 11/45/1
|
||||
f 81/49/11 83/50/11 209/48/11
|
||||
f 84/49/3 96/50/4 160/47/3
|
||||
f 143/43/9 140/44/10 14/45/9
|
||||
f 142/49/1 47/50/2 15/47/1
|
||||
f 158/49/5 48/50/6 16/47/5
|
||||
f 137/49/3 145/50/4 150/47/3
|
||||
f 77/43/11 73/44/11 197/46/11
|
||||
f 75/49/1 70/50/2 87/47/1
|
||||
f 72/49/8 62/50/8 20/47/8
|
||||
f 64/47/3 78/48/4 198/49/3
|
||||
f 54/47/5 53/48/6 22/49/5
|
||||
f 101/47/1 55/48/2 121/49/1
|
||||
f 165/49/9 210/50/10 173/47/9
|
||||
f 212/43/3 191/44/4 172/49/3
|
||||
f 4/4/2 1/1/1 187/3/1
|
||||
f 138/1/4 102/2/3 7/4/3
|
||||
f 12/51/6 159/5/5 208/7/5
|
||||
f 133/14/8 13/8/7 154/10/7
|
||||
f 123/52/10 17/11/9 19/13/9
|
||||
f 97/10/12 23/9/11 24/8/12
|
||||
f 192/22/2 90/15/2 151/17/2
|
||||
f 27/17/2 177/16/2 115/19/2
|
||||
f 30/19/2 205/18/2 32/21/2
|
||||
f 118/21/2 57/20/2 28/22/2
|
||||
f 65/18/4 166/19/4 105/17/4
|
||||
f 35/19/4 67/18/4 38/21/4
|
||||
f 39/15/4 40/22/4 131/21/4
|
||||
f 113/22/4 108/15/4 104/17/4
|
||||
f 181/24/6 147/53/6 42/25/6
|
||||
f 41/53/6 183/24/6 79/27/6
|
||||
f 26/28/6 44/54/6 43/27/6
|
||||
f 82/54/6 178/28/6 94/25/6
|
||||
f 46/36/8 176/29/8 45/31/8
|
||||
f 141/31/8 111/30/8 156/33/8
|
||||
f 157/33/8 128/32/8 135/35/8
|
||||
f 136/35/8 207/34/8 144/36/8
|
||||
f 127/38/10 49/55/10 50/39/10
|
||||
f 74/55/10 129/38/10 51/41/10
|
||||
f 31/42/10 52/56/10 71/41/10
|
||||
f 63/56/10 60/42/10 76/39/10
|
||||
f 68/32/11 99/33/11 189/35/11
|
||||
f 182/30/11 163/31/11 100/33/11
|
||||
f 91/29/11 56/36/11 164/31/11
|
||||
f 61/34/11 190/35/11 211/36/11
|
||||
f 152/46/10 213/43/9 193/45/9
|
||||
f 116/46/11 3/43/11 214/44/11
|
||||
f 188/44/6 117/45/5 201/43/5
|
||||
f 194/46/8 200/43/8 120/45/8
|
||||
f 5/50/8 36/47/8 161/49/8
|
||||
f 162/50/6 168/43/5 185/49/5
|
||||
f 112/48/11 8/49/11 186/50/11
|
||||
f 139/50/10 114/47/9 103/49/9
|
||||
f 9/50/8 95/47/8 10/49/8
|
||||
f 170/46/2 148/43/1 11/45/1
|
||||
f 83/50/11 215/47/11 209/48/11
|
||||
f 216/48/4 84/49/3 160/47/3
|
||||
f 149/46/10 143/43/9 14/45/9
|
||||
f 196/48/2 142/49/1 15/47/1
|
||||
f 155/48/6 158/49/5 16/47/5
|
||||
f 134/48/4 137/49/3 150/47/3
|
||||
f 73/44/11 85/45/11 197/46/11
|
||||
f 86/48/2 75/49/1 87/47/1
|
||||
f 88/48/8 72/49/8 20/47/8
|
||||
f 124/50/4 64/47/3 198/49/3
|
||||
f 171/50/6 54/47/5 22/49/5
|
||||
f 98/50/2 101/47/1 121/49/1
|
||||
f 122/48/10 165/49/9 173/47/9
|
||||
f 174/50/4 212/43/3 172/49/3
|
|
@ -0,0 +1,14 @@
|
|||
#version 330
|
||||
|
||||
in vec2 pass_textureCoords;
|
||||
|
||||
out vec4 out_colour;
|
||||
|
||||
uniform vec3 colour;
|
||||
uniform smapler2D fontAtlas;
|
||||
|
||||
void main(void){
|
||||
|
||||
out_colour = vec4(colour, texture(fontAtlas, pass_textureCoords).a);
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
#version 330
|
||||
|
||||
in vec2 position;
|
||||
in vec2 textureCoords;
|
||||
|
||||
out vec2 pass_textureCoords;
|
||||
|
||||
uniform vec2 translation;
|
||||
|
||||
void main(void){
|
||||
|
||||
gl_Position = vec4(position, 0.0, 1.0);
|
||||
pass_textureCoords = textureCoords;
|
||||
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
#version 400 core
|
||||
|
||||
in vec2 pass_textureCoordinates;
|
||||
in vec3 surfaceNormal;
|
||||
in vec3 toLightVector[4];
|
||||
in vec3 toCameraVector;
|
||||
in float visibility;
|
||||
|
@ -9,6 +8,7 @@ in float visibility;
|
|||
out vec4 out_Color;
|
||||
|
||||
uniform sampler2D modelTexture;
|
||||
uniform sampler2D normalMap;
|
||||
uniform vec3 lightColour[4];
|
||||
uniform vec3 attenuation[4];
|
||||
uniform float shineDamper;
|
||||
|
@ -17,7 +17,9 @@ uniform vec3 skyColour;
|
|||
|
||||
void main(void){
|
||||
|
||||
vec3 unitNormal = normalize(surfaceNormal);
|
||||
vec4 normalMapValue = 2.0 * texture(normalMap, pass_textureCoordinates) - 1.0;
|
||||
|
||||
vec3 unitNormal = normalize(normalMapValue.rgb);
|
||||
vec3 unitVectorToCamera = normalize(toCameraVector);
|
||||
|
||||
vec3 totalDiffuse = vec3(0.0);
|
||||
|
@ -47,4 +49,4 @@ void main(void){
|
|||
out_Color = vec4(totalDiffuse,1.0) * textureColour + vec4(totalSpecular,1.0);
|
||||
out_Color = mix(vec4(skyColour,1.0),out_Color, visibility);
|
||||
|
||||
}
|
||||
}
|
|
@ -3,12 +3,13 @@
|
|||
in vec3 position;
|
||||
in vec2 textureCoordinates;
|
||||
in vec3 normal;
|
||||
in vec3 tangent;
|
||||
|
||||
out vec2 pass_textureCoordinates;
|
||||
out vec3 surfaceNormal;
|
||||
out vec3 toLightVector[4];
|
||||
out vec3 toCameraVector;
|
||||
out float visibility;
|
||||
out vec3 pass_tangent;
|
||||
|
||||
uniform mat4 transformationMatrix;
|
||||
uniform mat4 projectionMatrix;
|
||||
|
@ -25,22 +26,35 @@ uniform vec4 plane;
|
|||
|
||||
void main(void){
|
||||
|
||||
|
||||
vec4 worldPosition = transformationMatrix * vec4(position,1.0);
|
||||
gl_ClipDistance[0] = dot(worldPosition, plane);
|
||||
mat4 modelViewMatrix = viewMatrix * transformationMatrix;
|
||||
vec4 positionRelativeToCam = modelViewMatrix * vec4(position,1.0);
|
||||
gl_Position = projectionMatrix * positionRelativeToCam;
|
||||
|
||||
pass_textureCoordinates = (textureCoordinates/numberOfRows) + offset;
|
||||
pass_textureCoordinates = (textureCoordinates);
|
||||
|
||||
surfaceNormal = (modelViewMatrix * vec4(normal,0.0)).xyz;
|
||||
vec3 surfaceNormal = (modelViewMatrix * vec4(normal,0.0)).xyz;
|
||||
|
||||
vec3 norm = normalize(surfaceNormal);
|
||||
vec3 tang = normalize((modelViewMatrix * vec4(tangent, 0.0)).xyz);
|
||||
vec3 bitang = normalize(cross(norm, tang));
|
||||
|
||||
mat3 toTangentSpace = mat3(
|
||||
|
||||
tang.x, bitang.x, norm.x,
|
||||
tang.y, bitang.y, norm.y,
|
||||
tang.z, bitang.z, norm.z
|
||||
);
|
||||
|
||||
for(int i=0;i<4;i++){
|
||||
toLightVector[i] = lightPositionEyeSpace[i] - positionRelativeToCam.xyz;
|
||||
toLightVector[i] = toTangentSpace * (lightPositionEyeSpace[i] - positionRelativeToCam.xyz);
|
||||
}
|
||||
toCameraVector = -positionRelativeToCam.xyz;
|
||||
toCameraVector = toTangentSpace * (-positionRelativeToCam.xyz);
|
||||
|
||||
float distance = length(positionRelativeToCam.xyz);
|
||||
visibility = exp(-pow((distance*density),gradient));
|
||||
visibility = clamp(visibility,0.0,1.0);
|
||||
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 2.2 MiB |