oh almost forgot to update this dont use it not ready

pull/1/head
BuildTools 2019-05-26 17:38:57 +10:00
parent a3e6425134
commit 515660d27a
78 changed files with 12238 additions and 843 deletions

430
hs_err_pid74156.log Normal file
View File

@ -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)

430
hs_err_pid78164.log Normal file
View File

@ -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)

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -1,4 +1,4 @@
package io.github.hydos.ginger.normals.obj;
package io.github.hydos.ginger.obj.normals;
public class ModelDataNM {

View File

@ -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);

View File

@ -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;

View File

@ -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();
}

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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){

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB